mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-07 20:34:21 +00:00
fixes #5628
This commit is contained in:
29
tests/exception/tdont_overwrite_typename.nim
Normal file
29
tests/exception/tdont_overwrite_typename.nim
Normal file
@@ -0,0 +1,29 @@
|
||||
discard """
|
||||
output: '''Check passed
|
||||
Check passed'''
|
||||
"""
|
||||
|
||||
# bug #5628
|
||||
|
||||
proc checkException(ex: ref Exception) =
|
||||
doAssert(ex.name == "ValueError")
|
||||
doAssert(ex.msg == "SecondException")
|
||||
doAssert(ex.parent != nil)
|
||||
doAssert(ex.parent.name == "KeyError")
|
||||
doAssert(ex.parent.msg == "FirstException")
|
||||
echo "Check passed"
|
||||
|
||||
var e: ref Exception
|
||||
try:
|
||||
try:
|
||||
raise newException(KeyError, "FirstException")
|
||||
except:
|
||||
raise newException(ValueError, "SecondException", getCurrentException())
|
||||
except:
|
||||
e = getCurrentException()
|
||||
|
||||
try:
|
||||
checkException(e) # passes here
|
||||
raise e
|
||||
except ValueError:
|
||||
checkException(getCurrentException()) # fails here
|
||||
Reference in New Issue
Block a user