mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-02 03:02:31 +00:00
fixes #5871
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user