Nim/tests/destructor/tgotoexceptions5.nim
Jacek Sieka 7d6cbf290a
Error -> Defect for defects (#13908)
* Error -> Defect for defects

The distinction between Error and Defect is subjective,
context-dependent and somewhat arbitrary, so when looking at an
exception, it's hard to guess what it is - this happens often when
looking at a `raises` list _without_ opening the corresponding
definition and digging through layers of inheritance.

With the help of a little consistency in naming, it's at least possible
to start disentangling the two error types and the standard lib can set
a good example here.
2020-04-28 19:56:01 +02:00

39 lines
569 B
Nim

discard """
output: '''
before
swallowed
before
swallowed B
'''
cmd: "nim c --gc:arc --exceptions:goto $file"
"""
# bug #13599
proc main() =
try:
echo "before"
raise newException(CatchableError, "foo")
except AssertionDefect:
echo "caught"
echo "after"
try:
main()
except:
echo "swallowed"
proc mainB() =
try:
echo "before"
raise newException(CatchableError, "foo")
# except CatchableError: # would work
except AssertionDefect:
echo "caught"
except:
raise
echo "after"
try:
mainB()
except:
echo "swallowed B"