Java 中的异常

  • Java中的异常体系
    • Java把所有的非正常情况分为两种:异常(Exception)和错误(Error),它们都继承Throwable父类。
      1. Error错误,一般是指与虚拟机有关的问题,如系统崩溃、虚拟机错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断。通常应用程序无法处理这些错误,因此应用程序不应该试图使用catch块来捕获Error对象。在定义该方法时,也无须在其throws子句中声明该方法可能抛出的Error及其任何子类。对于这类错误,Java编译器不去检查他们。对于这类错误导致的应用程序中断,仅靠程序本身无法恢复和预防,遇到这样的错误,建议让程序终止。
      2. Exception异常表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。
    • Exception又分为运行时异常(Runtime Exception)和受检查的异常(Checked Exception )。
      1. RuntimeException:其特点是Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try……catch捕获,也没有用throws抛出,还是会编译通过,如除数为零的ArithmeticException、错误的类型转换、数组越界访问和试图访问空指针等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。
      2. 受检查的异常(IOException等):这类异常如果没有try……catch也没有throws抛出,编译是通不过的。这类异常一般是外部错误,例如文件找不到、试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。
  • 常见的异常
    1. ArithmeticException:算数运算异常
    2. ArrayIndexOutOfBoundsException:数组越界异常
    3. ClassCastException:类型转换异常
    4. NullPointerException:空指针异常
    5. NumberFormatException:数据格式异常
    6. FileNotFoundException:文件未找到异常
    7. ClassNotFoundException:类未找到异常
    8. NoSuchElementException:没有这个元素异常(迭代器中到了末尾,还继续访问)

 常见的RuntimeException异常

1、NullPointerException -- 空指针引用异常

2、ClassCastException -- 类型强制转换异常

3、IllegalArgumentException  -- 传递非法参数异常

4、ArithmeticException -- 算术异常

5、ArrayStoreException  -- 向数组中存放与声明类型不兼容对象异常

6、IndexOutOfBoundsException  -- 下标越界异常

7、NegativeArraySizeException  -- 创建一个大小为负数的数组错误异常

8、NumberFormatException -- 数字格式异常

9、SecurityException  -- 安全异常

10、UnsupportedOperationException  -- 不支持的操作异常

posted @ 2018-11-28 15:03  追梦滴小蜗牛  阅读(136)  评论(0编辑  收藏  举报