异常

#Java

异常

异常:程序出现了不正常的情况。程序在执行过程中,出现的非正常情况,最终会导致JVM的非正常停止。

注意:语法错误不算在异常体系中

graph TD;
    Throwable-->Error;
    Throwable-->Exception;
    Exception-->RuntimeException及其子类;
    Exception-->Checked异常及其子类;

运行时异常:(空指针异常,数组索引越界异常)

除RuntimeException之外所有的异常(checked异常):编译期必须处理的,否则程序不能编译通过。(日期格式化异常)

JVM的默认处理方案

如果程序出现了问题,我们没有做任何处理,最终JVM会做默认处理

异常处理方式

两种方式:throws和try catch
throws 异常名称:

throw new 异常对象名:

意义

给方法的调用者一个反馈,而不是打印在控制台.
处理方式——try {} catch(){}
try{有可能出现异常的代码}catch(异常类 对象名){处理方式}
好处:可以让程序继续执行
try{}catch(){}catch(){}...出现多个异常。如果多个异常间存在子父类关系,那么父类一定要写在下面。

Throwable的成员方法:

自定义异常

  1. 定义异常类,见名知意
  2. 写继承关系
  3. 空参构造
  4. 带参构造