java-异常

Java 的异常处理机制是其语言特性之一,用于处理程序中可能出现的各种错误情况。Java 中的异常体系主要由 Java 标准类库中的 `java.lang.Throwable` 类及其子类构成。下面是一个简化的异常层次结构概述:

1. Throwable:
   - 这是所有错误和异常的超类。
   - Throwable 有两个直接子类:Exception 和 Error

2. Exception:
   - 这是所有用户可以捕获或抛出的异常的超类。
   - Exception 又分为两个主要部分:运行时异常(RuntimeExceptions)和编译时异常(编译阶段出现的异常)

①运行时异常:编译阶段不报错,运行出现的异常(数字操作异常、空指针异常、索引异常、)

②编译时异常:编译阶段报错,编译不通过(提醒代码可能出问题)。


异常的基本处理:

抛出异常(throws):将方法内部出现的异常抛出去。

public void checkAge(int age) throws IllegalArgumentException {
    if (age < 0) {
        throw new IllegalArgumentException("年龄不能为负数");
    }
    // 正常逻辑
}

捕获异常(try....catch):`try` 块包含了可能会抛出异常的代码。如果 `try` 块中的代码抛出了一个异常,那么这个异常会被 `catch` 块捕获,并在那里处理。如果没有捕获到异常,则程序会继续执行 `try` 之后的代码。

try {
    // 可能会抛出异常的代码
} catch (ExceptionType1 e) { // 捕获特定类型的异常
    // 处理 ExceptionType1 异常
} catch (ExceptionType2 e) { // 捕获另一个类型的异常
    // 处理 ExceptionType2 异常
}

 finally 语句:`finally` 块总是被执行,无论是否发生异常。这使得 `finally` 成为一个释放资源的理想位置

try {
    // 可能会抛出异常的代码
} catch (Exception e) {
    // 处理异常
} finally {
    // 总是会被执行的代码
}

异常的作用:

①用来定位程序bug的关键信息。

public class BugLocator {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3};
        try {
            int value = numbers[3]; // 数组越界
            System.out.println("Value is " + value);
        } catch (ArrayIndexOutOfBoundsException e) {
            System.err.println("Caught an exception: " + e.getMessage());
            e.printStackTrace(); // 打印堆栈跟踪,帮助定位错误
        }
    }
}

②可以用作方法内部的一种特殊返回值。

throw new Exception("");

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值