try-catch-finally
示例1:
def main(args: Array[String]): Unit = {
val array = Array(1, 2, 3);
try {
val i = StdIn.readInt()
val res = 10 / i
println(array(i))
} catch {
case ex: ArithmeticException => {
println("算术异常=" + ex.getMessage)
}
case ex: IndexOutOfBoundsException => {
println("数组下标越界异常=" + ex.getMessage)
}
} finally {
println("finaly 的代码...")
}
println("程序继续....")
}
结果: 输入数字正确时: 数学异常
下标越界异常
示例:
def test(): Nothing = {
throw new Exception("不对")
}
def main(args: Array[String]): Unit = {
val res = test()
println(res.toString) //
}
当一个函数没有正常的返回值时,可以用Nothing来作为返回类型。这样做的好处是,我们可以把返回值(比如:异常)赋给其它的函数或者变量。
@throws异常def main(args: Array[String]): Unit = {
fun()
}
@throws(classOf[NumberFormatException])
def fun() = {
"abc".toInt
}