首页 > 代码库 > JAVA中的异常(异常处理流程、异常处理的缺陷)
JAVA中的异常(异常处理流程、异常处理的缺陷)
- 异常处理流程
1)首先由try{...}catch(Exception e){ System.out.println(e); e.printStackTrace(); }finally{...}结构
2)当JVM遇到异常时,会产生一个Exception对象 或 继承自Exception的子类的对象。
3)将异常对象向上层(调用它的代码块)抛出,知道碰到一个catch块(作相应处理) 或 一直抛到了最外层(导致程序异常终止)。(并停止异常之后的代码的执行,但是finally块中的代码还会执行!换句话说,不管有没有异常,finally块都会执行,所以,它常用来放一些收尾工作代码。)
3)在catch块中处理异常e,将信息打印出来。
- 可以通过继承Exception,写自己的异常处理类。。
- 异常处理也会有缺陷:
1)finally块中出现异常,我们就无计可施了,只能让异常抛到最外层并终止程序。
2)在继承时,子类中与父类同名的方法在声明异常的时候只能比父类的级别小,而不能扩大。(父类无异常throws E(),子类也不能有;父类有throws Echild,子类只能有throws Egrandchild,而不能有throws E。)
3)要注意多个catch块的顺序,一定要把子类的catch块写在上面,父类的catch块写在下面。(否则编译出错)
如:try{...}catch(Egrandchild e){...}catch(Echild e){...}catch(E e){...}finally{...}。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。