异常
Java处理异常的方式
- java语言按照try—catch-catch…-finally的方式来处理异常
- 不管有没有异常捕获,都会执行finally,因此通常可以在finally代码块中释放资源3)可以有多个catch,分别捕获对应的异常,这时需要把范围小的异常类写在前面,
- 把范围大的异常类写在后面,否则编译错误。会提示”Exception ‘java.lang.xxxxxx’has already been caught”
在Java中我们不可以把大的异常写在前面,小的异常写在后面,因为大的异常写在前面他会捕获所有的异常,后面的就捕获不到了,但是在Scala中可以不用在乎异常的顺序
Scala异常处理案例
1 | object ExceptionProcess { |
Scala异常处理小结
- 我们将可以代码封装在try快中。在特try快之后使用了一个catch处理程序来捕获异常。如果发生任何异常,catch程序将处理它,程序件不会异常终止
- Scala的异常工作机制和Java的一样,但是Scala没有“checked 编译器”,异常,即Scala没有编译这个概念,异常都是在运行的时候捕获处理
- 用throw关键字,抛出一个异常对象,所有异常都是throwable的子类型,throw表达式是有类型的,就是nothing,因为nothing是所有类型的子类型,所以throw表达式可以用在需要类型的地方
- 在Scala里,借用了模式匹配的思想来做异常的匹配,因此,在catch的代码里,是
一系列case子句来匹配异常。当匹配上后=→>有多条语句可以换行写,类似java的 switch case x:代码块.. - 异常捕捉的机制与其他语言中一样,如果有异常发生,catch子句是按次序捕捉的
因此,在catch子句中,越具体的异常越要靠前,越普遍的异常越靠后,如果把越普遍的异常写在前,把具体的异常写在后,在scala中也不会报错,但这样是非常不好的编程风格。 - finally子句不管是正常结束还是异常结束都会执行,一般用于对象的清理工作这点和Java一样
- Scala提供了throws关键字来声明异常。可以使用方法定义声明异常。它向调用者函数提供了此方法可能引发此异常的信息。它有助于调电函数处理并将该代码包含在try-catch块中,以避免程序异常终止。在scala中,可以使用throws注释来声明异常
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ryder!
评论






