Java异常
异常就是在程序运行过程中所发生不正常的事件,如所需文件找不到,网络连接不通或中断,算术运算符出错(如被零除),数组下标越界,装载了一个不存在的类,对null对象操作,类型转换异常等。异常会中断正在运行的程序。
1.异常处理
语法:
try{
// 可能会发生异常得代码
}catch(ExceptionName ex){
//异常代码
}
常见的异常类型:
异常 | 说明 |
---|---|
Exception | 异常层次结构的根类 |
ArithmeticException | 算术错误情形,如以零作除数 |
ArrayIndexOutOfBoundsException | 数组下标越界 |
NullPointerException | 尝试访问null对象成员 |
ClassNotFoundException | 不能加载所需的类 |
InputMismatchException | 欲得到的数据类型与实际输入的类型不匹配 |
IIIegalArgumentException | 方法接受到非法参数 |
ClassCastException | 对象强制类型转换出错 |
NumberFormatException | 数字格式转换异常,如把字符装换成数字 |
处理异常手段:
1、try…catch…finally
2、try:监控代码,监控可能发生错误的代码
3、如果try里面代码没有发生异常,则整个try执行完毕,一定进入catch
4、如果try里面有异常,则try里面后面的代码不会执行,如果有对应的cathch一定会进入catch
catch:捕获catch里面指定类的异常
1、语法:catch(类名 对象名),类名–》异常的类名
catch(Exception ex)
2、catch可以一次性出现多个
要求:子类必须在父类的前面;catch后面的类型不能出现相同的
结果:只会执行一个,第一次匹配的执行
3,finally:不管执行的try还是catch都最后一定的执行的代码
如果遇到了System.eixt(1);不会执行finally
除非finally里面的代码也出现异常
2.throws
通过throws抛出异常
定义一个方法的时候可以使用throws关键字声明。使用throws关键字声明的方法表示此方法不处理异常,而交给方法调用处进行处理。
通过try-catch捕获处理异常。
通过throws继续声明异常。如果调用者不打算处理该异常,则可以继续通过throws声明异常,让上一级处理。
3.throw
throw关键字抛出异常
throw关键字作用是抛出一个异常,抛出的时候是抛出的是一个异常类的实例化对象,在异常处理中,try语句要捕获的是一个异常对象,那么此异常对象也可以自己抛出。
throw和throws的区别表现在三个方面。
作用不同:throw用于在程序中抛出异常;throws用于声明在该方法内抛出了异常。
使用位置不同:throw位于方法体内部,可以作为单独语句使用;throws必须跟在方法参数列表后面,不能单独使用。
内容不同:throw抛出一个异常对象,而且只能是一个;throws后面跟异常类,而且可以跟多个。
4.异常分类
Throwable类:所有的异常类型都是Throwable的子类,它派生两个子类,即Error和Exception。
Error类:表示仅靠程序本身无法恢复严重错误。
Exception类:由java应用程序抛出和处理非常严重的错误,如所需文件找不到,网络连接中断,算术运算符出错,数组下标越界。
5.log4j
MyEclipse中使用log4j的四个步骤:
1.在项目中加入log4j所使用的jar文件。
2.创建log4j.properties文件。
3.编写log4j.properties文件,配置日志信息。
4.在程序中使用log4j记录日志信息。