blob: 8ed2ed0bad45ced72bfde7e910608d08db5c1b85 (
plain) (
tree)
|
|
discard """
output: '''A
B
X
inner finally
Y
outer finally
msg1
msg2
finally2
finally1
true'''
cmd: "nim c --gc:arc $file"
"""
# bug #13668
proc main =
try:
try:
raise newException(IOError, "IOError")
except:
echo "A"
raise newException(CatchableError, "CatchableError")
except:
echo "B"
#discard
proc mainB =
try:
try:
raise newException(IOError, "IOError")
except:
echo "X"
raise newException(CatchableError, "CatchableError")
finally:
echo "inner finally"
except:
echo "Y"
#discard
finally:
echo "outer finally"
main()
mainB()
when true:
#bug 7204
proc nested_finally =
try:
raise newException(KeyError, "msg1")
except KeyError as ex:
echo ex.msg
try:
# pop exception
raise newException(ValueError, "msg2") # push: exception stack (1 entry)
except:
echo getCurrentExceptionMsg()
# pop exception (except)
finally:
echo "finally2"
# pop exception (except KeyError as ex)
finally:
echo "finally1"
nested_finally()
# bug #14925
proc test(b: bool) =
echo b
test(try: true except: false)
|