fixes #5871
This commit is contained in:
parent
03e0aa37e3
commit
0c271f5420
3 changed files with 17 additions and 6 deletions
|
|
@ -442,6 +442,7 @@ type
|
|||
## providing an exception message
|
||||
## is bad style.
|
||||
trace: string
|
||||
up: ref Exception # used for stacking exceptions. Not exported!
|
||||
|
||||
SystemError* = object of Exception ## \
|
||||
## Abstract class for exceptions that the runtime system raises.
|
||||
|
|
|
|||
|
|
@ -73,12 +73,11 @@ proc popSafePoint {.compilerRtl, inl.} =
|
|||
excHandler = excHandler.prev
|
||||
|
||||
proc pushCurrentException(e: ref Exception) {.compilerRtl, inl.} =
|
||||
#if e.parent.isNil:
|
||||
# e.parent = currException
|
||||
e.up = currException
|
||||
currException = e
|
||||
|
||||
proc popCurrentException {.compilerRtl, inl.} =
|
||||
currException = nil # currException.parent
|
||||
currException = currException.up
|
||||
|
||||
# some platforms have native support for stack traces:
|
||||
const
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
discard """
|
||||
file: "tfinally3.nim"
|
||||
output: "false"
|
||||
output: '''false
|
||||
Within finally->try
|
||||
Traceback (most recent call last)
|
||||
tfinally3.nim(24) tfinally3
|
||||
Error: unhandled exception: First [Exception]'''
|
||||
exitCode: 1
|
||||
"""
|
||||
# Test break in try statement:
|
||||
|
||||
|
|
@ -14,5 +19,11 @@ proc main: bool =
|
|||
|
||||
echo main() #OUT false
|
||||
|
||||
|
||||
|
||||
# bug #5871
|
||||
try:
|
||||
raise newException(Exception, "First")
|
||||
finally:
|
||||
try:
|
||||
raise newException(Exception, "Within finally->try")
|
||||
except:
|
||||
echo getCurrentExceptionMsg()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue