mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 09:24:36 +00:00
45 lines
812 B
Nim
45 lines
812 B
Nim
discard """
|
|
outputsub: "-6"
|
|
"""
|
|
type
|
|
ESomething = object of Exception
|
|
ESomeOtherErr = object of Exception
|
|
ESomethingGen[T] = object of Exception
|
|
ESomethingGenRef[T] = ref object of Exception
|
|
|
|
proc genErrors(s: string) =
|
|
if s == "error!":
|
|
raise newException(ESomething, "Test")
|
|
else:
|
|
raise newException(EsomeotherErr, "bla")
|
|
|
|
proc raiseBla(): int =
|
|
try:
|
|
genErrors("errssor!")
|
|
except ESomething:
|
|
echo("Error happened")
|
|
except:
|
|
raise
|
|
|
|
proc blah(): int =
|
|
try:
|
|
result = raiseBla()
|
|
except ESomeOtherErr:
|
|
result = -6
|
|
|
|
echo blah()
|
|
|
|
# Issue #7845, raise generic exception
|
|
var x: ref ESomethingGen[int]
|
|
new(x)
|
|
try:
|
|
raise x
|
|
except ESomethingGen[int] as e:
|
|
discard
|
|
|
|
try:
|
|
raise new(ESomethingGenRef[int])
|
|
except ESomethingGenRef[int] as e:
|
|
discard
|
|
except:
|
|
discard |