javaSE.抛出异常
当程序没有按照我们理想的样子运行而出现异常时(默认会交给jvm来处理,jvm发现任何异常都会立即终止程序运行,并在控制台打印栈追踪信息)现在我们希望能够自己处理出现的问题,让程序运行下去,就需要对异常进行捕获。
程序被终止👇
自己处理:👇
算数异常👇
要对应异常才能捕获👇
catch中捕获的类型只能时Throwable的子类,也就是说要么是抛出的异常,要么是错误,不能是其他类型
如果某个方法明确指出会抛出哪些异常,除非抛出的异常是一个运行时异常,否则我们必须要使用try-catch语句块进行异常的捕获,不然无法通过编译。
抛出异常👇交给上一级处理
直接处理异常👇
多重异常捕获👇
运行时异常不能放在数组越界异常前面,他是父类子类的问题,已经捕获过了。运行时异常兼容了数组越界。
使用 | 写在一起👇
当我们希望,程序运行时,无论是否出现异常,都会在最后执行任务,可以交给finally语句块来处理
是否出现异常都会执行finally👇
即使出现了异常并未捕获也会执行finally👇