day15 异常(Exception)处理

什么是异常

开发过程中发生的不正常的情况称为"异常"。逻辑、语法错误不算异常
异常可以分为两大类

  1. Error:JVM无法解决的问题,如StackOverflow、Out of memory。Error是严重错误,程序会崩溃
  2. Exception:其他编程错误或偶然的外在错误导致的一般性问题,可以用针对性的代码进行处理。Exception分运行时异常和编译时异常。

异常体系图

在这里插入图片描述

常见的运行时异常

运行时异常可以不处理,有默认处理方式
在这里插入图片描述

常见的编译异常

编译异常指在编译期间,就必须处理的异常,不处理则无法通过编译
在这里插入图片描述

异常处理

try-catch-finally

try{
// 可能会发生异常的代码
} catch (Expection e){
// 若捕获到异常,会执行这里的代码;若无异常则不执行此处的代码
// JVM将捕获到的异常封装到一个Exception类的对象e中
} finally {
// 无论代码中是否有异常都会执行此处的代码,必须执行
// 通常用于释放资源
}

idea中ctrl+alt+t可以快速生成try-catch
可以有多个catch语句,父类异常在后,子类异常在前。只会执行一个catch中的语句(多个catch的关系如同if 和else if)
也可以使用,没有捕获异常,但是会执行finally中的内容

try{
}
finally{
}

throws

在这里插入图片描述
语法:

public void method1() throws Exception {}

注意事项:
在这里插入图片描述

在重写方法时,该方法中子类抛出异常的范围不能小于父类

自定义异常

步骤:

  1. 定义类,继承Exception或者RuntimeException
  2. 继承Exception,是编译异常
  3. 继承RuntimeException,是运行时异常(通常情况下是继承运行时异常,可以使用默认的异常处理机制)
  4. 设置构造器
public class A {
    public static void main(String[] args) {
        if(true) {
        	// 手动抛出异常
            throw new CustomException("自定义异常输出信息");
        }
    }
}
// 继承RuntimeException
class CustomException extends RuntimeException{
    public CustomException(String message) {
        super(message);
    }
}

throw 和throws区别

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值