异常处理

1. 异常的体系结构

java的异常可以分为两种:

  1. Error:Java虚拟机无法解决的问题,比如StackOverflowError(栈溢出)、OOM(堆溢出),程序不能处理
  2. Exception:其他因为编程错误或偶然的外在因素导致的一般性问题,可以使用代码处理。如:
    1. 空指针异常
    2. 试图读取不存在的文件
    3. 网络连接中断
    4. 数组角标越界

异常的体系结构:

  1. java.lang.Throwable
  2. * |-----java.lang.Error:一般不编写针对性的代码进行处理。
  3. * |-----java.lang.Exception:可以进行异常的处理
  4. * |------编译时异常(checked)不会生成字节码文件
  5. * |-----IOException
  6. * |-----FileNotFoundException
  7. * |-----ClassNotFoundException
  8. * |------运行时异常(unchecked,RuntimeException)
  9. * |-----NullPointerException//空指针异常
  10. * |-----ArrayIndexOutOfBoundsException//数组角标越界
  11. * |-----ClassCastException//类型转化异常
  12. * |-----NumberFormatException//编码格式异常
  13. * |-----InputMismatchException//输入不匹配
  14. * |-----ArithmeticException//算术异常

异常类的继承体系
image.png

2. 自定义异常类

2.1 如何自定义异常类

  1. 继承现有异常类:ExceptionRuntimeException
  2. 提供全局变量:seiralVersionUID
  3. 提供重载的构造器

代码示例

  1. public class MyException extends Exception{
  2. static final long serialVersionUID = -7034897193246939L;
  3. public MyException(){
  4. }
  5. public MyException(String msg){
  6. super(msg);
  7. }
  8. }