1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- 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)
|