异常

异常总结

异常
1,异常的概念:异常指的是程序运行时出现的非正常情况,程序出现非正常情况的原因有很多,如数组下标越界,
算术被0除,空指针访问,试图访问不存在的文件等。
2,异常的类层次:

Throwable:Throwable类为Java异常类继承层次的最高层,不但提供了getMessage()方法,用来得到有关异常事件的信息,
还提供了printStackTrace()方法,用来跟踪异常事件发生时执行堆栈的内容。
1,Error:错误Error类指的是系统错误或者运行环境出现错误,这些错误一般是很严重的错误,即使捕捉到也无法处理,
由Java虚拟机生成并抛出,包括系统崩溃,动态链接失败,虚拟机错误等,在Java程序中不做处理。
2,Exception:异常Exception类则是指一些可以被捕获,且可能恢复的异常情况,是一般程序中可预知的问题,可分为两类:
(1):运行时异常:由系统检测,用户的Java程序不做处理,系统将它们交给缺省的异常处理程序
RunTimeException: ArithmeticException
NullPointerException
ArrayIndexOutOfBoundsException

			(2): 非运行时异常:在程序中必须对其进行处理,否则编译器会指出错误
								ClassNotFoundException
								FileNotFoundException
								InterruptedException
								IOException
								......

3,异常的处理
Java异常处理通过5个关键字:try,catch,finally,throw.throws.
Java中处理异常有2种方式,捕获异常和抛出异常。
捕获异常:就地解决,并使程序继续执行。
抛出异常:将异常向外转移,即将异常抛出方法之外,由调用该方法的环境去处理。

(1)捕获异常:
try{
语句块;
}
catch(异常类名 参变量名) { 语句块; }
finally { 语句块; }

try: 捕获异常的第一步是用 try{…}选定捕获异常的范围,try 模块中的语句是程序正常流程要执行的语句,
但是在执行过程中有可能出现异常。所有可能抛出异常的语句都放入 try 模块中。
catch(必有) :每个 try 代码块可以伴随一个或多个 catch 语句,用于处理 try 代码块中所生成的异常事件。
catch 语句只需要一个形式参数指明它所能够捕获的异常类型,这个类必须是 Throwable 的子类,
运行时系统通过参数值把被抛弃的异常对象传递给 catch 块。在 catch 块中是对异常对象进行处理的代码,
与访问其它对象一样,可以访问一个异常对象的数据成员或调用它的方法。
catch 语句的顺序:捕获异常的顺序和 catch 语句的顺序有关,当捕获到一个异常时,剩下的 catch 语句就不再进行匹配。
因此,在安排 catch 语句的顺序时,首先应该捕获最特殊的异常,
然后再逐渐一般化。也就是一般先安排子类,再安排父类。
finally(可选) :捕获异常的最后一步是通过 finally 语句为异常处理提供一个统一的出口,
使得在控制流转到程序的其它部分 以前,能够对程序的状态作统一的管理。
不论在 try 代码块中是否发生了异常事件,finally 块中的语句都会被执行。
(2)抛出异常
在 Java 程序的执行过程中,如果出现了异常事件,就会生成一个异常对象。
生成的异常对象将传递给 Java运行时系统,这一异常的产生和提交过程称为抛出(throw)异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值