异常处理
1. 异常的体系结构
java的异常可以分为两种:
- Error:Java虚拟机无法解决的问题,比如StackOverflowError(栈溢出)、OOM(堆溢出),程序不能处理
- Exception:其他因为编程错误或偶然的外在因素导致的一般性问题,可以使用代码处理。如:
- 空指针异常
- 试图读取不存在的文件
- 网络连接中断
- 数组角标越界
异常的体系结构:
java.lang.Throwable
* |-----java.lang.Error:一般不编写针对性的代码进行处理。
* |-----java.lang.Exception:可以进行异常的处理
* |------编译时异常(checked)不会生成字节码文件
* |-----IOException
* |-----FileNotFoundException
* |-----ClassNotFoundException
* |------运行时异常(unchecked,RuntimeException)
* |-----NullPointerException//空指针异常
* |-----ArrayIndexOutOfBoundsException//数组角标越界
* |-----ClassCastException//类型转化异常
* |-----NumberFormatException//编码格式异常
* |-----InputMismatchException//输入不匹配
* |-----ArithmeticException//算术异常
异常类的继承体系
2. 自定义异常类
2.1 如何自定义异常类
- 继承现有异常类:Exception、RuntimeException
- 提供全局变量:seiralVersionUID
- 提供重载的构造器
代码示例
public class MyException extends Exception{
static final long serialVersionUID = -7034897193246939L;
public MyException(){
}
public MyException(String msg){
super(msg);
}
}