Java-异常

本文详细介绍了Java中的异常体系,包括Error和Exception的区别,运行时异常和编译时异常,以及JVM的默认处理方式。重点讲解了try-catch语句的使用,Throwable的方法,抛出异常的`throws`和`throw`关键字,以及自定义异常的创建。
摘要由CSDN通过智能技术生成

目录

概述

定义

异常体系

两类异常的区别

作用

处理方式

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. 带参构造
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值