9.1 简介
Scala异常语法处理上和Java类似,但是又不尽相同。
Java异常:
try {
int a = 10;
int b = 0;
int c = a / b;
} catch (ArithmeticException e){
// catch时,需要将范围小的写到前面
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
} finally {
System.out.println("finally");
}
9.2 基本语法
scala中异常不分类
scala任何异常都不需要显示处理
异常处理和模式匹配非常类似
- 捕获异常的时候,范围小的放在前面,大的放在后面
- 如果没有异常匹配到,会直接将异常抛出
object ScalaException {
def main(args: Array[String]): Unit = {
try {
var n= 10 / 0
}catch {
case ex: ArithmeticException=>{
// 发生算术异常
println("发生算术异常")
}
case ex: Exception=>{
// 对异常处理
println("发生了异常1")
}
}finally {
println("finally")
}
}
}
Scala中的异常不区分所谓的编译时异常和运行时异常,也无需显示抛出方法异常,所以Scala中没有throws关键字。