异常

155 阅读2分钟

异常体系

体系

微信截图_20240729131413.png

  • Error:代表系统级别错误(属于严重错误)系统一旦出现问题,Sun公司会把这些错误分装成Error对象。Error是给Sun公司自己用的,不是给我们程序员用的。因此我们开发人员不用管它。
  • Exception:叫做异常,代表程序可能出现的问题。我们通常会用Exception以及他们的子类来封装程序出现的问题。
  • RuntimeException:运行时异常,RuntimeException及其子类,编译阶段不会出现异常提醒。运行时出现的异常(如:数组越界异常)
  • 编译时异常:编译阶段就会出现异常提醒的。(如:日期解析异常)

总结

1.异常是什么?

  • 程序可能出现的问题

2.异常体系的最上层父类是谁?异常分为几类?

  • 父类:Exception
  • 异常分为两类:编译时异常和运行时异常

编译时异常和运行时异常的区别?

  • 编译时异常:除了RuntimeException和他的子类,其他都是编译时异常。直接继承于Exception。编译阶段需要进行处理,作用在于提醒程序员。
  • 运行时异常:RuntimeException本身和所有子类,都是运行时异常,编译阶段不报错,是程序运行时出现的。一般都是由于参数传递错误带来的问题。

异常的作用

  • 作用一:异常是用来查询bug的关键参考信息
  • 作用二:异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况。

异常处理的方式

JVM默认的处理方式

目的:把异常信息以红色字体打印在控制台,并结束程序。

自己处理(捕获异常)

目的:当代码出现异常时,可以让程序继续执行下去

格式:

try {
   可能出现异常的代码;
} catch (异常类名 变量名) {
    异常的代码处理;
}

微信截图_20240729140758.png

抛出异常(throws throw)

目的:在方法中出现了异常,方法就没有继续执行下去的意义了,采取抛出处理。让该方法结束运行并告诉调用者出现了哪些问题。

名称注意点格式
throws写在方法定义处,表明声明一个异常。告诉调用者,使用本方法可能会出现哪些异常public void 方法() throws 异常类型名1,异常类名2...{}编译时异常,必须要写。运行时异常,可以不写
throw写在方法内,结束方法。手动抛出异常对象,交给调用者。方法中下面的代码不再执行public void 方法() { throw new NullPointerException }

异常中常见的方法

微信截图_20240729143452.png

自定义异常

微信截图_20240729143728.png