java - 什么时候抛出 "throws Exception"?

标签 java exception

假设以下函数:

public void close() throws SQLException {
    if (rs != null) { rs.close(); }
    if (ps != null) { ps.close(); }
    if (connection != null){ connection.close(); }
}

如果我尝试关闭 rs 但它失败了,我的其余代码是否仍会执行(即是否在最后抛出异常),或者它是否会立即中断函数(从而阻止 ps 和连接得到正确关闭)。

最佳答案

如果异常发生在rs.close,则抛出异常。如果您希望执行那些其他语句,那么您需要使用 finally。如果您怀疑会抛出另一个异常,您可以创建一个函数,如 closeQuietly,如果您认为可以安全地忽略这些异常,它会确认但丢弃这些异常。例如(来自这个 answer ),

protected void closeQuietly( Resource resource ) {
      try {
        if (resource != null) {
          resource.close();
        }
      } catch( Exception ex ) {
        log( "Exception during Resource.close()", ex );
      }
    }

关于java - 什么时候抛出 "throws Exception"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23365869/

相关文章:

c# - 为什么我的异常堆栈跟踪总是指向最后一个方法行?

java - 无法从缓存中删除 JAR

java - 无法将 Apache Commons FileUpload 与 Spring Boot multipart.resolve-lazily 结合使用

java - 异常 "org.apache.jasper.runtime.PageContextImpl.handlePageException"的根本原因是什么?

java - 如何在java中有效地使用方法中的参数?

.net - 从 VS2010 升级到 VS2012 后,Linq to EF Join 抛出 "Index was out of range"

javascript - 在 Firefox 开发工具中像检查普通对象一样检查异常对象

java - JFreeChart 中的差距

java - RxJava : How to convert List of objects to List of another objects

java - 如何禁用和启用 USB OTG 连接以打开和关闭硬件设备?