上图是对各种异常进行处理,当然也可以直接catch (Exception e) .因为这是父类。打印e的方法的时候,也可以看到哪里发生了异常,但是缺点是,没有针对性的处理。不像我上面这样,角标越界,那我就知道是角标越界,我就可以进行专门的处理。算数异常,那我这个catch块里,就可以针对性的进行处理。但是Exception是来什么异常我就处理什么异常,万一这次代码中有算数异常,你对算数异常进行了处理。下次代码里出现了角标越界,你的catch里还是上次算数异常处理的逻辑,那这样就不对。(还要说一下,这样直接抛RuntimeException是不对的。编译的时候只检查的是检查型的异常,RuntimeException是运行时异常,Java规范的话RuntimeException是不能抛的。你有抛RuntimeException的功夫,你还不如好好完善一下你的代码,在你的方法里可以写if进行判断,让它不要出现除0异常,或者角标越界之类的,当然你说可不可以抛,是可以的。)
Exception 的catch块如果再算数异常,角标越界这两个catch块前面的话,那么出现什么异常就都捕捉了。 Exception catch块底下的两个catch块就不走了,等于废话,多余的代码;Exception 的catch块如果再算数异常,角标越界这两个catch块后面的话,意味着,我调用的方法还可以出现其他的异常,我在这里捕捉一下,打印一下,这样的做法是不正确的,因为代码出了问题,我们不是让他继续运行,而是进行针对性的处理或者停掉。你这样catch一捕捉,打印一下,等于啥也没干。代码照样该运行还是运行。
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!