前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java中的异常

Java中的异常

原创
作者头像
堕落飞鸟
发布于 2023-04-02 02:40:01
发布于 2023-04-02 02:40:01
69100
代码可运行
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏
运行总次数:0
代码可运行

Java 中的异常(Exception)是指在程序执行过程中出现了错误或异常情况,导致程序无法正常执行的情况。Java 中的异常分为两种类型:受检异常(Checked Exception)和非受检异常(Unchecked Exception)。

受检异常

受检异常是指必须在方法签名中声明并且必须被捕获或抛出的异常。受检异常通常是由外部环境导致的,比如文件不存在、网络连接失败等。在 Java 中,所有受检异常都是 Throwable 的子类,包括 Exception 和其子类,但不包括 Error。

Java 实现代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void readFile() throws FileNotFoundException {
    File file = new File("test.txt");
    Scanner scanner = new Scanner(file);
    while (scanner.hasNextLine()) {
        System.out.println(scanner.nextLine());
    }
    scanner.close();
}

在方法签名中使用 throws 关键字声明了该方法可能会抛出 FileNotFoundException 异常。在调用该方法时,必须捕获或继续抛出该异常。

非受检异常

非受检异常是指不需要在方法签名中声明并且不需要被捕获或抛出的异常。通常是由程序内部的逻辑错误导致的,比如数组越界、空指针引用等。在 Java 中,所有非受检异常都是 RuntimeException 的子类,包括 NullPointerException、ArrayIndexOutOfBoundsException 等。

Java 实现代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void arrayTest() {
    int[] arr = {1, 2, 3};
    System.out.println(arr[3]); // 数组越界异常
}

该方法不需要在方法签名中声明任何异常,如果在调用该方法时发生了异常,程序将直接崩溃。

异常处理

在 Java 中,可以使用 try-catch-finally 语句来处理异常。try 块中包含可能抛出异常的代码,catch 块用于捕获并处理指定类型的异常,finally 块用于释放资源或执行必须的清理工作。

Java 实现代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void exceptionTest() {
    try {
        int[] arr = {1, 2, 3};
        System.out.println(arr[3]); // 数组越界异常
    } catch (ArrayIndexOutOfBoundsException e) {
        System.out.println("数组越界异常:" + e.getMessage());
    } finally {
        System.out.println("执行 finally 块");
    }
}

如果 try 块中的代码发生了异常,catch 块将捕获并处理该异常。在处理完异常后,finally 块将始终执行。

以上是 Java 中异常的基本概念和使用方法。在实际开发中,应该根据具体情况选择合适的异常处理方法,以确保程序的正确性和可靠性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验