Java 基础 ------- 异常(一)

异常:程序在运行过程中所发生的不正常事件,如文件找不到,网络连接不同或中断,下标越界,类型转换异常等。

使用if-else 处理异常缺点:
a、代码臃肿,加入了大量的异常情况判断和处理代码

b、大量精力放在了异常处理,占用了编码时间,影响开发效率

c、很难穷举所有异常情况,程序不健壮

d、异常处理代码和业务代码交织在一起,影响可读性

1、Java异常体系结构

 所有异常的父类 Throwable ,有两个派生子类 Error 类和 Exception类。

1.1、Error 类:表示仅靠程序本身无法恢复的严重错误,如内存溢出,动态链接失败,虚拟机错误。应用程序遇到这种类型,应尽量使程序安全退出。

1.2、Exeception类:表示由java 应用程序抛出和处理的严重错误,如所需文件找不到,数组下标越界,类型转换异常,网络连接不通或中断等异常。又分为两大类异常运行时异常和非运行时异常。

运行时异常: 包括RunningException及其所有子类。不要求程序必须对他们进行处理,主要处理的就是这种异常。

Checked异常(非运行时异常):除了运行时异常外的其他从Exception类继承来的异常类。

 

 常见的有:

运行时异常(RuntimeException):
  NullPropagation:空指针异常;
  ClassCastException:类型强制转换异常
  IllegalArgumentException:传递非法参数异常
  IndexOutOfBoundsException:下标越界异常
  NumberFormatException:数字格式异常

非运行时异常:
  ClassNotFoundException:找不到指定 class 的异常
  IOException:IO 操作异常

错误(Error):
  NoClassDefFoundError:找不到 class 定义异常
  StackOverflowError:深递归导致栈被耗尽而抛出的异常
  OutOfMemoryError:内存溢出异常

 

原文地址:https://www.cnblogs.com/obge/p/12364434.html