123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 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
|