Java-异常

发布时间:2023年12月20日

目录

概述

定义

异常体系

两类异常的区别

作用

处理方式

JVM默认的处理方式

自己处理(捕获异常)

格式

目的

四个问题

Throwable中的常见方法

抛出处理

throws

throw

自定义异常


概述

定义

异常是程序中可能出现的问题。

异常体系

最上层父类是Throwable类,下面分为两类:Error和Exception。

Error:代表系统级别的错误,属于严重错误,一般不是给程序员用的。

Exception:异常,代表程序中可能出现的问题,我们通常用Exception和它的子类来封装程序出现的问题。Exception又分为两类:运行时异常和编译时异常。

两类异常的区别

运行时异常:继承于Exception类的RuntimeException本身和其子类。编译阶段没有错误提示,运行时出现。

编译时异常:没有继承RuntimeException的异常,直接继承于Exception。编译阶段就会出现错误提示。

作用

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

处理方式

JVM默认的处理方式

  • 把异常的名称、异常原因及异常出现的位置等信息输出在控制台上
  • 程序停止执行,下面的代码不会继续执行

自己处理(捕获异常)

格式

try {
    可能出现异常的代码;//1. 此处出现了异常,程序就会在这里创建一个异常类的对象
}catch(异常类名 变量名) {//2. 拿着这个对象到catch的小括号里面进行对比,看括号中的变量是否能够接收这个对象,如果能够接收,就表示该异常被捕获,执行catch里面的代码
    异常处理的代码;
}

目的

当代码出现异常的时候,可以让程序继续往下执行。

四个问题

  1. 如果try中没有遇到问题,会把try里面所有的代码全部执行完毕,不会执行catch里面的代码。
  2. 如果try中有可能会遇到多个问题,需要写多个catch与之对应。要注意的是,这些异常中如果存在父子关系,父类一定要写在子类的下面。(在JDK7以后,一个catch可以处理多个异常,它们之间用‘|’相连)
  3. 如果try中遇到的问题没有被捕获,则会采取虚拟机默认处理的方式。
  4. 如果try中遇到了问题,那么try里面其他的代码就不会执行了。

Throwable中的常见方法

方法名称说明
public String getMessage ()返回此throwable的详细消息字符串
public String toString()返回此可抛出的简短描述
public void printStackTrace()把异常的错误信息以红色字体输出在控制台

抛出处理

throws

  • 写在方法定义处,表示声明一个异常,告诉调用者,使用本方法可能会有哪些异常
  • 编译时异常必须要写,运行时异常可以不写
public void 方法() throws 异常类名1,异常类名2··· {}

throw

  • 写在方法内,结束方法,手动抛出异常对象,交给调用者,方法中下面的代码不再执行了
public void 方法() {
    throw new NullPointerException();
}

自定义异常

  1. 定义异常类
  2. 写继承关系
  3. 空参构造
  4. 带参构造
文章来源:https://blog.csdn.net/liuyitingliuyihe/article/details/135105207
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。