异常

来源:互联网 发布:oecd数据公布 编辑:程序博客网 时间:2024/06/05 04:36

java中我们最常遇见的就是异常了,有的异常是可以修复的,而有的异常是修复不了的,下面我们就来说一下异常的处理机制


Java异常处理机制

java中遇到异常会产生一个异常对象

生成的异常对象传递给JRE的过程叫做抛出(throw)异常

JRE得到异常会先寻找解决此异常的代码,JRE会把异常对象交给这个方法来处理,这个过程叫做捕获(catch)异常

如果找不到捕获异常的方法,JRE会停止运行,相应的java程序也将退出

 

java中的错误一般分为ErrorException,而Exception又分为普通异常和系统异常,系统异常又分为运行时异常和非运行时异常,下面是一个异常的结构图



Error

javaError异常一般是程序不可恢复的异常,例如,内存溢出和线程死锁等系统问题,再报Error一场之后一般就说明程序已经死了,不可恢复

Exception

Exception异常又分为系统异常和普通异常,普通异常就是运行环境的变化或异常所导致的问题,是用户能够克服的问题,例如,网络断线,硬盘空间不够

系统异常就是软件本身缺陷所导致的问题,也就是软件开发人员考虑不周所导致的问题,例如,数组脚本越界(ArrayIndexOutOfBoundsException),空指针异常(NullPointerException)、类转换异常(ClassCastException)这些都是属于开发人员所导致的异常是可以修复的异常


系统异常又分为运行时异常和非运行时异常

运行时异常:Java编译器允许程序不对它们做出处理

非运行时异常:Java编译器要求程序必须捕获或声明这种异常,否则编译就报错


Java中异常处理关键字

throws捕获并向外抛出异常
throw抛出异常
try catch是内部捕获异常并做自定义处理
finally是无论是否有异常都会被处理的语句

 

Java处理异常的两种方式

自行处理:可能引发异常的语句封入在 try 块内,而处理异常的相应语句则封入在 catch 块内

回避异常:在方法声明中包含 throws 子句,通知潜在调用者,如果发生了异常,必须由调用者处理



原创粉丝点击