📅  最后修改于: 2021-01-09 11:59:37             🧑  作者: Mango
Scala提供了try and catch块来处理异常。 try块用于封装可疑代码。 catch块用于处理try块中发生的异常。根据需要,您的程序中可以有任意数量的try catch块。
在以下程序中,我们将可疑代码包含在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 MainObject{
def main(args:Array[String]){
var e = new ExceptionExample()
e.divide(100,0)
}
}
输出:
java.lang.ArithmeticException: / by zero
Rest of the code is executing...
在此示例中,我们的catch处理程序中有两种情况。第一种情况将仅处理算术类型异常。第二种情况具有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 MainObject{
def main(args:Array[String]){
var e = new ExceptionExample()
e.divide(100,10)
}
}
输出:
found a unknown exceptionjava.lang.ArrayIndexOutOfBoundsException: 10
Rest of the code is executing...