summaryrefslogblamecommitdiff
path: root/test/files/run/try-2.scala
blob: b55977ba8bab608d566be2dfb95025d6e9b97ab4 (plain) (tree)
1
2
3
4
5
6
7
8
9


                                                  





             
                        



                        
                                                                   

     
                        


                                
                                                        

     
                       


                        
                                                        

     
                         


                                
                                                     

     
                        


             
                                                   





                                 
                            






                                        
                         


                        
/*
 * Test different variants of the try-catch block.
 *
 */


object Test {


  def tryAllUnit: Unit =
    try {
      throw new Error();
    }
    catch {
      case _: Throwable => Console.println("exception happened\n");
    }

  def tryUnitAll: Unit =
    try {
      Console.println("Nothin");
    } catch {
      case _: Throwable => sys.error("Bad, bad, lama!");
    }

  def tryAllAll: Unit =
    try {
      throw new Error();
    } catch {
      case _: Throwable => sys.error("Bad, bad, lama!");
    }

  def tryUnitUnit: Unit =
    try {
      Console.println("Nothin");
    } catch {
      case _: Throwable => Console.println("Nothin");
    }

  def tryIntUnit: Unit =
    try {
      10;
    } catch {
      case _: Throwable => Console.println("Huh?");
    }


  def execute(f: => Unit) = try {
    f;
  } catch {
    case _: Throwable => ();
  }


  def main(args:Array[String]): Unit = {
    execute(tryAllUnit);
    execute(tryUnitAll);
    execute(tryAllAll);
    execute(tryUnitUnit);
    execute(tryIntUnit);
 }
}