try-catch, throws, throw等异常处理总结

异常处理总结

  • 使用try - catch和不使用try - catch的区别

  1. try - catch可以对方法体内的异常进行捕获,并进行处理,比如打印语句或者栈输入e.printStackTrace()。同时经过try-catch后,即使发生异常,处理后代码会继续进行下去,不会中断。

try-catch, throws, throw等异常处理总结

  1. 不使用try-catch,异常就会被 JVM 处理,直接打印出异常信息,同时终止代码。

try-catch, throws, throw等异常处理总结

  • throw 和 throws 的区别

  1. throw 是编写在方法体内,是一定会抛出一个异常,因为后面直接就是 new Exception()。一般应用于在满足某种条件下,比如if方法体中,主动抛出自定义异常的需求。throw 抛出的异常需要程序员进行处理,要么向上提交给方法调用者处理,要么使用 try-catch 捕获,而现在的编辑器ide中,如果没有处理,就会直接报出编译错误,强制要程序员处理。

try-catch, throws, throw等异常处理总结

  1. throws 则不是在方法体内编写,而是在方法名称后面进行声明,表示方法体内可能会存在着异常**,并将方法体内的异常向上抛出给方法的调用者进行处理,从而不用在方法体内进行try-catch或者其他操作。而方法的调用者就必须对接受到的异常进行处理,或者进行try-catch捕获,或者继续throws声明,向上抛给再上一级的方法调用者,不然就会发生编译错误。

try-catch, throws, throw等异常处理总结

由以上的结论也可以看出 try-catch 和 throws 的区别,try-catch 是积极的异常处理方式,捕获当前的异常并立刻在当期方法体内进行处理,throws 则是消极的异常处理方式,直接将异常交给上一级的调用者处理,当前方法不需要任何操作,如果一直向上抛,最终到达main方法,就会被 JVM 处理,打印异常信息,并终止程序。

try-catch, throws, throw等异常处理总结