summary refs log blame commit diff stats
path: root/tests/exception/texcas.nim
blob: 7108e334c597fb79b97867db191f4dd73a05531a (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
           
                  
                  
     
     
   




                                  

                                
                                          
      

                                        



                                
                         
                                
 






                            
                 

                







                                              
discard """
  targets: "c cpp"
  output: '''Hello
Hello
  '''
"""
proc test[T]() =
  try:
    raise newException(T, "Hello")
  except T as foobar:
    echo(foobar.msg)
  doAssert(not declared(foobar))

template testTemplate(excType: typedesc) =
  try:
    raise newException(excType, "Hello")
  except excType as foobar:
    echo(foobar.msg)
  doAssert(not declared(foobar))

proc test2() =
  testTemplate(Exception)
  doAssert(not declared(foobar))


proc testTryAsExpr(i: int) =
  let x = try: i    
  except ValueError as ex:
    echo(ex.msg)
    -1

test[Exception]()
test2()
testTryAsExpr(5)

# see bug #7115
doAssert(not compiles(
  try: 
    echo 1
  except [KeyError as ex1, ValueError as ex2]:
    echo 2
))