Java异常机制

[size=large]Java异常机制

在编译时看似没有错误的代码经常在运行的时候会出现各种各样的错误而导致程序非正常结束,如我们通常遇到的数组下标越界、空指针异常,这些统称为异常。

一、了解异常及异常的类
异常的概念:
导致程序中断运行的一种指令流。

Java的异常结构中有两个常用的类:
Exception和Error,他们都是Throwable的子类。
1、Error错误是程序中无法处理的,比如内存过小而使正常的代码无法运行,此时不是修改代码就可以的,需要更改电脑的硬件设施。
2、Exception是程序中出现的问题,可以通过修改代码来使程序重新运行起来。常用try...catch处理。

Exception类包括:
运行时异常:(常见的)
ArrayIndexOutOfBoundsException - 数组下标越界
ArithmeticException - 算术运算中,被0除或模除
ClassCastException - 类型转换异常
NullPointerException - 空指针异常
非运行时异常:
又称强制异常,发生这种异常时,Java编译器强制要求进行try...catch处理。

运行时异常出现时,不会强制要求处理,程序还可以继续运行,而要修改异常处代码,最常使用的是System.out.println();它不仅仅是一个输出语句,更是检查运行时异常的利器! :lol:

二、异常处理机制
try...catch...finally处理机制
该处理机制通常在强制异常中使用。[/size]

try{
file.creatNewFile();
Robot rb = new Robot();
}catch(IOException e){

}catch(AWTException e){

}finally{

}


[size=large] 如果在try中产生了异常,程序会自动跳转到catch语句中找到匹配的异常类型进行相应的处理,最后不管程序是否发生异常,都会执行finally语句,finally语句是可以省略的。
try中某一行的代码如果发生异常,那么try中这一行之后的其余代码不会被执行,也就是说只能找到第一行异常的代码,并且调用对应的catch部分处理。
上述代码中捕获异常的类可以使用更加细分的类,这样便于了解到底是什么出现了异常,如FileNotFoundException.....当然,利用向上转型的概念,所有的异常对象都可以使用Exception接收,那么上面两个catch代码就可以合并为一条:[/size]

try{
file.creatNewFile();
Robot rb = new Robot();
}catch(Exception e){

}


[size=large]
三、调试异常的方法
异常信息分析与程序调试:
1、根据提示的信息确定异常的类型(查找API)
2、根据提示信息找到出错的位置(提示错误信息中第一个自己定义的类)
3、分析问题(使用System.out.println()输出,运行程序检查错误)
4、修改代码
5、再次调试....

什么时候就要抛出异常呢?
写程序给用户使用时出现异常必须要处理,不能往外抛出异常;
写第三方插件时,就要向外抛出异常,而不要去处理它。
(throw-实例化一个异常对象,throws-将异常抛出不进行处理)

Debug模式调试错误:
另一种调试错误的方法,但是不建议使用,不是通过自己找到错误,长期会慢慢的不使用Debug就对待错误无从下手。[/size]


如有不足欢迎指正! :D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值