异常处理机制详解(初学者必看--入门保姆级!!)

Hi i,m JinXiang


⭐ 前言 ⭐

本篇文章主要介绍异常处理机制中throw与throws的区别、异常捕获、常见异常的使用方式以及部分理论知识


🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁

🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言


目录

⭐什么是异常处理机制?

⭐为什么要使用异常处理机制?

1、提高代码的稳定性和可靠性:

2、方便程序员编写和维护代码:

3、提供更好的错误处理机制:

4、使程序更加健壮和可扩展:

⭐使用异常处理机制:

🍧throw与throws的区别

🍧异常捕获

🍧常见异常

🍧异常处理遵循步骤


⭐什么是异常处理机制?

异常处理机制是用于在程序执行期间处理可能发生的异常情况。在程序中,异常是指在运行时发生的错误或意外情况,例如除数为零、空指针引用、文件无法打开等。异常处理机制允许程序员在出现异常时捕获并处理异常,使程序可以更加健壮和可靠。一般来说,异常处理机制包括抛出异常、捕获异常、处理异常、重新抛出异常等步骤。通过合理地运用异常处理机制,程序可以更好地应对各种异常情况,并提高程序的稳定性和可维护性。

⭐为什么要使用异常处理机制?

使用异常处理机制有以下几个原因:

1、提高代码的稳定性和可靠性:

当程序出现异常情况时,如果没有使用异常处理机制,程序可能会崩溃或者出现不可预测的错误。使用异常处理机制可以避免这种情况的发生,程序可以更加稳定和可靠。

2、方便程序员编写和维护代码:

使用异常处理机制可以让程序员更加专注于业务逻辑的实现,而不需要关注异常情况的处理,降低代码的复杂性和维护成本。

3、提供更好的错误处理机制:

通过异常处理机制,程序员可以抛出自定义的异常,并在捕获异常后进行相应的处理,这样可以提供更加精细和灵活的错误处理机制。

4、使程序更加健壮和可扩展:

异常处理机制可以帮助程序更好地应对未知的异常情况,并提供更好的扩展性和可维护性,使程序更加健壮和可扩展。

总之,使用异常处理机制可以提高程序的稳定性和可靠性,方便程序员编写和维护代码,提供更好的错误处理机制,使程序更加健壮和可扩展。

⭐使用异常处理机制:

🍧throw与throws的区别

在Java 中 `throw` `throws` 都与异常(Exception)相关,它们的作用和使用方式不同。

  • 1、`throw` 是用于在代码块中抛出一个异常对象的操作,`throw` 后的表达式必须是一个异常对象或者是一个方法调用语句,该方法返回的为异常对象。当程序执行到 `throw` 声明时,立即停止当前代码块的执行,并将异常传递给上一层调用代码块。
  • 2、`throws` 是用于声明方法可能会抛出什么样的异常,它一般是在方法声明处使用,多个异常类需要使用逗号分隔开。当方法中调用了其他可能会抛出异常的方法时,需要在方法声明处使用 `throws` 声明该方法可能会抛出的异常,该方法的调用者就需要对这些异常进行捕获或者抛出。

简而言之,`throw` 是用于抛出异常对象,而 `throws` 则是用于声明方法可能会抛出什么样的异常,供调用者处理。

下面是一个简单的示例代码,演示了 `throw` `throws` 的使用。

public static int number(int a, int b) throws ArithmeticException {
    if(b == 0) {
        throw new ArithmeticException("除数不能为0");
    }
    return a / b;
}

public static void main(String[] args) {
    try {
        int result = divide(10, 0);
    } catch (ArithmeticException e) {
        System.out.println(e.getMessage());
    }
}

在这个例子中,方法 `divide` 使用 `throw` 抛出一个 `ArithmeticException` 异常,当方法的调用者(在 `main()` 方法中)调用 `divide` 方法时,需要使用 `try-catch` 语句块捕获该异常,否则程序会抛出未捕获的异常。同时,使用 `throws` 在方法声明处声明了该方法可能会抛出 `ArithmeticException` 异常。

🍧异常捕获

异常捕获是指在程序运行过程中,如果出现了异常,程序会立即停止运行并抛出异常。为了避免程序因此终止运行,需要对可能出现异常的代码进行异常捕获处理,使程序能够继续运行下去。

在 Java 中,异常捕获主要通过 `try-catch-finally` 语句块来实现。`try` 语句块中包含可能会抛出异常的代码,当代码抛出异常时,程序会立即停止运行并跳转到 `catch` 语句块中。`catch` 语句块用于处理 `try` 块中抛出的异常,一般会根据异常类型进行不同的处理。`finally` 语句块用于在 `try` 语句块和 `catch` 语句块之后执行,无论异常是否被捕获,`finally` 语句块中的代码都会被执行。

下面是一个简单的示例代码,演示了异常捕获的使用。

public static void main(String[] args) {
    try {
        int[] arr = new int[3];
        arr[3] = 3; // 数组下标越界,会抛出 ArrayIndexOutOfBoundsException 异常
    } catch (ArrayIndexOutOfBoundsException e) {
        System.out.println("数组下标越界!"); // 捕获异常并处理
    } finally {
        System.out.println("程序结束!"); // 无论是否抛出异常,finally 块中的代码都会被执行
    }
}

在这个例子中,程序会在 `try` 语句块中抛出 `ArrayIndexOutOfBoundsException` 异常,然后跳转到 `catch` 块中处理异常,最后执行 `finally` 块中的代码。在 `catch` 块中,会输出一条提示信息,告诉用户出现了什么异常。在 `finally` 块中,会输出一条结束信息,告诉用户程序运行结束。

🍧常见异常

Java 中常见的异常有很多种,以下列举了一些比较常见的异常类型:

1、`NullPointerException` 空指针异常当一个应用程序试图在需要对象的地方使用 `null` 时,抛出该异常。

2、`ArrayIndexOutOfBoundsException` 数组下标越界异常:当应用程序试图访问数组中不存在的索引时,会抛出该异常。

3、`ClassCastException` 类型转换异常:当试图将对象强制转换为错误的数据类型时,会抛出该异常。

4、`ArithmeticException` 算术异常:当出现除数为0或者取模运算时,被除数为0时,抛出该异常。

5、`NumberFormatException` 数字格式异常:当试图把字符串转换为数字时,如果字符串的格式不正确,会抛出这个异常。

6、 `IOException` 输入/输出异常:当 Java 应用程序中发生异常事件时,例如无法找到文件,或者文件已被打开,或者试图访问超出文件末尾的数据时,会抛出该异常。

7、 `SQLException` SQL异常:当试图访问数据库的时候,如果出现连接失败、SQL语句执行错误等问题时,会抛出该异常。

8、 `FileNotFoundException` 文件未找到异常:当试图读取一个不存在的文件时,会抛出该异常。

9、`InterruptedException` 中断异常:当一个线程等待、休眠或者运行时,如果被其他线程打断,就会抛出该异常。

10、`RuntimeException` 运行时异常:包括空指针异常、数组越界异常、类型转换异常等。

以上列举的是一些比较常见的异常类型,当然在Java中还有很多其他的异常类型,具体使用时需要根据具体情况进行选择。

🍧异常处理遵循步骤

在使用异常处理机制时,通常需要遵循以下步骤:

1. 抛出异常:当程序出现异常情况时,需要在相应的代码块中抛出异常。可以使用Java内置的异常类,或者自定义异常类来表示异常。

2. 捕获异常:在可能出现异常的代码块外层使用try-catch语句来捕获异常。当try语句块中的代码发生异常时,会跳转到相应的catch语句块中进行异常处理。

3. 处理异常:在catch语句块中处理异常情况。根据异常的类型和具体情况,可以采取不同的处理方法,如输出错误信息,重新抛出异常或执行相应的恢复逻辑。

下面是一个简单的示例代码,演示了如何使用异常处理机制:

try {
    // 可能会出现异常的代码
    int a = divide(10, 0);
} catch (ArithmeticException e) {
    // 捕获除以0异常
    System.out.println("除数不能为0");
    // 输出异常信息
    e.printStackTrace();
}

// 自定义函数
public static int divide(int a, int b) {
    return a / b;
}

在上述代码中,当调用divide函数时,如果除数为0,则会抛出ArithmeticException异常。在catch语句块中,捕获该异常并输出错误信息。程序继续执行,不会因为异常而崩溃。

总之,使用异常处理机制可以让程序变得更加健壮和可靠,提高代码的稳定性和可维护性。

总结不易,希望uu们不要吝啬亲爱的👍哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正😁

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值