mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
* 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.
21 lines
462 B
Nim
21 lines
462 B
Nim
discard """
|
|
outputsub: "assertion failure!this shall be always written"
|
|
exitcode: "1"
|
|
"""
|
|
# test assert and exception handling
|
|
|
|
proc callB() = assert(false)
|
|
proc callA() = callB()
|
|
proc callC() = callA()
|
|
|
|
try:
|
|
callC()
|
|
except AssertionDefect:
|
|
write(stdout, "assertion failure!")
|
|
except:
|
|
write(stdout, "unknown exception!")
|
|
finally:
|
|
system.write(stdout, "this shall be always written")
|
|
|
|
assert(false) #OUT assertion failure!this shall be always written
|