mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-07 13:33:22 +00:00
61 lines
989 B
Nim
61 lines
989 B
Nim
discard """
|
|
cmd: "nim c --gc:arc --exceptions:goto $file"
|
|
output: '''caught in gun
|
|
caught in fun
|
|
caughtsome msgMyExcept
|
|
in finally
|
|
caught1
|
|
123
|
|
123'''
|
|
"""
|
|
|
|
when true:
|
|
# bug #13070
|
|
type MyExcept = object of CatchableError
|
|
proc gun() =
|
|
try:
|
|
raise newException(MyExcept, "some msg")
|
|
except Exception as eab:
|
|
echo "caught in gun"
|
|
raise eab
|
|
|
|
proc fun() =
|
|
try:
|
|
gun()
|
|
except Exception as e:
|
|
echo "caught in fun"
|
|
echo("caught", e.msg, e.name)
|
|
finally:
|
|
echo "in finally"
|
|
fun()
|
|
|
|
when true:
|
|
# bug #13072
|
|
type MyExceptB = object of CatchableError
|
|
proc gunB() =
|
|
raise newException(MyExceptB, "some msg")
|
|
proc funB() =
|
|
try:
|
|
gunB()
|
|
except CatchableError:
|
|
echo "caught1"
|
|
funB()
|
|
|
|
# bug #13782
|
|
|
|
import strutils
|
|
var n = 123
|
|
|
|
try: n = parseInt("xxx")
|
|
except: discard
|
|
|
|
echo n
|
|
|
|
proc sameTestButForLocalVar =
|
|
var n = 123
|
|
try: n = parseInt("xxx")
|
|
except: discard
|
|
echo n
|
|
|
|
sameTestButForLocalVar()
|