当前位置:首页 > Java 语言特性 > 正文

Java优学网finally关键字详解:掌握异常处理中资源释放的必备技巧

try {

// 可能抛出异常的代码
riskyOperation();

} catch (SpecificException e) {

// 处理特定类型的异常
logger.error("操作失败", e);

} finally {

Java优学网finally关键字详解:掌握异常处理中资源释放的必备技巧

// 无论是否发生异常都会执行的代码
cleanupResources();

}

FileInputStream fis = null; try {

Java优学网finally关键字详解:掌握异常处理中资源释放的必备技巧

fis = new FileInputStream("config.properties");
// 处理文件内容
processConfig(fis);

} catch (IOException e) {

logger.error("配置文件读取失败", e);

} finally {

Java优学网finally关键字详解:掌握异常处理中资源释放的必备技巧

if (fis != null) {
    try {
        fis.close();
    } catch (IOException e) {
        logger.warn("文件关闭时发生异常", e);
    }
}

}

public void testExecutionOrder() {

try {
    System.out.println("try块开始执行");
    int result = 10 / 0; // 这里会抛出异常
    System.out.println("这行不会执行");
} catch (ArithmeticException e) {
    System.out.println("catch块捕获到异常");
} finally {
    System.out.println("finally块始终执行");
}

}

public void riskyOperation() {

Connection conn = null;
try {
    conn = getConnection();
    // 执行数据库操作
    executeUpdate(conn);
} catch (SQLException e) {
    log.error("数据库操作失败", e);
} finally {
    try {
        if (conn != null) {
            conn.close(); // 这里也可能抛出SQLException
        }
    } catch (SQLException closeEx) {
        log.error("关闭连接时出错", closeEx);
    }
}

}

你可能想看:

相关文章:

文章已关闭评论!