Scala try-catch语句
Scala提供try
和catch
块来处理异常。try
块用于包含可疑代码。catch
块用于处理try
块中发生的异常。可以根据需要在程序中有任意数量的try...catch
块。
Scala try catch示例1
在下面的程序中,我们将可疑代码封装在try
块中。 在try
块之后使用了一个catch
处理程序来捕获异常。如果发生任何异常,catch
处理程序将处理它,程序将不会异常终止。
class ExceptionExample{ def divide(a:Int, b:Int) = { try{ a/b }catch{ case e: ArithmeticException => println(e) } println("Rest of the code is executing...") } } object Demo{ def main(args:Array[String]){ var e = new ExceptionExample() e.divide(100,0) } }
将上面代码保存到源文件:Demo.scala中,使用以下命令编译并执行代码 -
D:\software\scala-2.12.3\bin>scalac Demo.scala D:\software\scala-2.12.3\bin>scala Demo.scal java.lang.ArithmeticException: / by zero Rest of the code is executing...
Scala Try Catch示例2
在这个例子中,catch
处理程序有两种情况。 第一种情况将只处理算术类型异常。 第二种情况有Throwable
类,它是异常层次结构中的超类。第二种情况可以处理任何类型的异常在程序代码中。有时当不知道异常的类型时,可以使用超类 - Throwable
类。
class ExceptionExample{ def divide(a:Int, b:Int) = { try{ a/b var arr = Array(1,2) arr(10) }catch{ case e: ArithmeticException => println(e) case ex: Throwable =>println("found a unknown exception"+ ex) } println("Rest of the code is executing...") } } object Demo{ def main(args:Array[String]){ var e = new ExceptionExample() e.divide(100,10) } }
将上面代码保存到源文件:Demo.scala中,使用以下命令编译并执行代码 -
D:\software\scala-2.12.3\bin>scalac Demo.scala D:\software\scala-2.12.3\bin>scala Demo.scal found a unknown exceptionjava.lang.ArrayIndexOutOfBoundsException: 10 Rest of the code is executing...
上一篇:Scala final关键字
下一篇:Scala finally块