(图片来源见水印)
*常见问题:Error和Exception的区别?
*常见问题:Checked Exception 和 Unchecked Exception的区别?
处理异常一共有三种方式:
try { //可能会出现异常的代码 } catch (异常类型1 异常类型对象) { //发生异常1后执行的代码 } catch (异常类型2 异常类型2) { ... //发生异常2后执行的代码 } finally { //不发生异常执行的代码 }
【注】多个catch:异常范围小的放在前面,范围大的放在后面
*常见问题:try,catch以及finally的作用?
*常见问题:finally什么情况下不会被执行?
*常见问题:finally的执行与return关系
情形一:try-catch块中有return语句,finally语句仍会被执行
情形二:finally块中有return语句,finally块中的return语句会覆盖try-catch中的return语句
方式二:throw抛出异常
throw只抛出异常,不处理异常
throw new 异常类名(参数);
修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2…{ }
*常见问题:throw和throws的区别?
位置不同:
功能不同:
发生异常可能性不同:
*常见问题:final, finally, finalize的区别?
final:修饰符,用于修饰类,变量或者方法。被修饰的类不能被其他类继承;被修饰的变量必须显式指定初始值且赋值后不能被重新赋值,通常与static一起使用创建类常量;被修饰的方法可以被子类继承,不能被子类重写
fianlly:用于异常处理
finalize:方法名,主要用于垃圾回收
https://zhuanlan.zhihu.com/p/450346339
https://www.cnblogs.com/13roky/p/14672500.html
https://www.bilibili.com/read/cv16217199?spm_id_from=333.999.0.0