gpt4 book ai didi

java - 从 catch 中以及从 finally block 中抛出异常

转载 作者:行者123 更新时间:2023-12-01 22:45:34 24 4
gpt4 key购买 nike

我想抛出在对应用程序执行 MySQL 事务时发生的任何异常。但在此之前我想关闭所有处于打开状态的资源。但是关闭这些资源可能会再次生成异常,我想再次向应用程序报告该异常。下面的代码将使这一点变得更清楚:

try
{
// connect to MySQL DB using JDBC and run different queries
}
catch ( Exception e )
{
// throw this exception by wrapping it in another user defined exception class
}
finally
{
try
{
// close resources opened in try block ( statement, connection )
}
catch ( Exception e )
{
// throw this exception by wrapping it in another user defined exception class
}
}

我想知道处理这种情况的正确方法是什么(抛出两个异常)。感谢您的帮助。

最佳答案

我建议您使用Java 7 The try-with-resources Statement

Oracle 文档对此进行了更好的解释

<小时/>

示例代码:

try(  Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement(query);
ResultSet rs = stmt.executeQuery() ) {
// connection, statements and result set are automatically closed
}

注意: try-with-resources 语句可以像普通语句一样具有 catchfinally block try 语句。在 try-with-resources 语句中,任何 catchfinally block 都会在声明的资源关闭.

关于java - 从 catch 中以及从 finally block 中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25422011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com