1. 异常分类
1. 结构图
2. 异常分为:已检查异常和未检查异常。Error是由java 运行时系统内部错误和资源耗尽引起,是不可处理的,runtime exception一般是由程序错误引起的,如:空指针异常,数字下标越界异常,类型转换错误异常等,是我们可以在程序中处理的。已检查异常在程序中必须抛出异常或者捕获异常,不然会报错。
2. 异常处理
1.抛出异常
void readData()throws IoException{ //第二步
//第一步 确定要异常,new
throw new IoException(); //此处可以是已有的异常,也可以是自定义的异常
}
2.自定义一个异常
class MyException extends Exception{ //此处继承exception或其子类
public MyException(){}
public MyException(String gripe){super(gripe)}
}
3.捕获异常
try{
//程序执行代码
}catch{
//异常处理代码
}
4.改变异常类型
比如一个servlet中有一个sql异常,但是对于调用者不需要知道细节,只需要知道servlet是否有错误
try{
}catch(sqlException e){
throw new ServletException(); //改变异常类型
}
包装原来异常
catch(sqlException e){
Throwable se =new ServletException("data cuowu");
se.initCause(e);
throw se;
}
3. 常见异常
1. 未检查异常:也叫runtimeException,在java.lang包下,可以不在程序中处理
NullPointerException (空指针)
IndexOutOfBoundsException (数组下标越界)
ArithmeticException (算数异常)
ArrayStoreException (数组存储异常)
ClassCastException (类型转换异常)
IllegalArgumentException (非法参数异常)
检查异常:
IOException (io异常)
SQLException (sql 异常)
ClassNotFountException (未找到类异常)
DataFormatException (数据格式化异常)
NoSuchMethodException (方法未找到)
NoSuchfiledException (属性未找到)
4. 日志
可以使用log4j日志框架,进行错误信息记录