当前位置:首页 > Java

java如何使用异常

2026-02-05 02:22:02Java

异常处理基础

Java异常处理通过try-catch-finally机制实现。将可能抛出异常的代码放入try块,通过catch捕获并处理异常,finally块用于执行必须的清理操作(无论是否发生异常都会执行)。

try {
    // 可能抛出异常的代码
    int result = 10 / 0; // 抛出ArithmeticException
} catch (ArithmeticException e) {
    System.out.println("除零错误: " + e.getMessage());
} finally {
    System.out.println("清理资源");
}

异常类型

  • 受检异常(Checked Exception):编译时强制检查,必须处理(如IOException)。
  • 非受检异常(Unchecked Exception):包括运行时异常(如NullPointerException)和错误(如OutOfMemoryError),通常不强制处理。
// 受检异常需显式处理
try {
    FileReader file = new FileReader("test.txt");
} catch (FileNotFoundException e) {
    System.out.println("文件未找到");
}

抛出异常

通过throw主动抛出异常,或在方法签名中使用throws声明可能抛出的异常。

// 抛出异常
void validateAge(int age) {
    if (age < 0) {
        throw new IllegalArgumentException("年龄不能为负数");
    }
}

// 声明异常
void readFile() throws IOException {
    Files.readAllLines(Paths.get("file.txt"));
}

自定义异常

继承ExceptionRuntimeException创建自定义异常类。

class CustomException extends Exception {
    public CustomException(String message) {
        super(message);
    }
}

// 使用示例
try {
    throw new CustomException("自定义异常");
} catch (CustomException e) {
    System.out.println(e.getMessage());
}

异常链

通过initCause()或构造方法传递原始异常,保留完整的异常信息。

try {
    // 模拟原始异常
    throw new NullPointerException();
} catch (NullPointerException e) {
    IllegalStateException ex = new IllegalStateException("包装异常");
    ex.initCause(e);
    throw ex;
}

try-with-resources

自动管理资源(实现AutoCloseable接口的类),无需显式调用close()

try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
    System.out.println(br.readLine());
} catch (IOException e) {
    System.out.println("IO异常: " + e.getMessage());
}

最佳实践

  • 避免捕获过于宽泛的异常(如直接捕获Exception),应针对具体异常类型处理。
  • finally块中释放资源,或使用try-with-resources简化代码。
  • 日志记录异常信息(如e.printStackTrace()或日志框架)。
  • 自定义异常时提供有意义的错误信息。

java如何使用异常

分享给朋友:

相关文章

react如何处理异常

react如何处理异常

React 异常处理的基本方法 React 应用中异常处理通常分为组件内错误和全局错误两类。组件内错误可通过 try/catch 或错误边界(Error Boundaries)捕获,全局错误可通过 w…

uniapp中如何使用iconfont

uniapp中如何使用iconfont

使用 Iconfont 在 Uniapp 中的步骤 下载 Iconfont 资源 访问 Iconfont 官网,选择需要的图标并添加到项目。下载时选择 Font class 格式,解压后会得到 .tt…

java如何处理异常

java如何处理异常

异常处理的基本概念 Java中的异常处理机制通过try-catch-finally块实现,用于捕获和处理程序运行时可能出现的错误。异常分为Checked Exception(编译时检查,如IOExce…

java如何抛出异常

java如何抛出异常

抛出异常的基本语法 在Java中,使用 throw 关键字手动抛出异常。语法格式为: throw new ExceptionType("Error message"); ExceptionType…

uniapp插槽异常

uniapp插槽异常

uniapp插槽异常常见原因及解决方法 插槽在uniapp开发中常用于组件间内容分发,异常可能由以下原因导致: 作用域插槽未正确声明 插槽作用域变量需在父组件和子组件间明确传递。子组件需定义v-sl…

如何使用 react native

如何使用 react native

安装开发环境 确保已安装 Node.js(建议使用 LTS 版本)。通过以下命令安装 React Native 命令行工具: npm install -g expo-cli 或使用 Yarn: y…