java - 抛出 IOException 而不是 Exception

标签 java exception ioexception

我有 method1(),它是从整个代码中的许多其他方法调用的。这是该方法的签名:

 public void method1(final Properties properties) throws IOException {}

所有调用此方法的方法也会抛出 IOException。

method1() 中的实际代码发生了变化,因此现在它不再抛出 IOException,而是抛出一些扩展 Exception 的其他异常,并且不再 IOException 了。

我不想更改所有调用 method1() 的方法的签名。

可以创建 IOException 并仍然从 method1() 抛出 IOException 并因此调用 method1() 的方法吗?

如下所示:

 Try {
  // code
 } catch (Exception e) {
   throw new IOException(e.getCause());
 }

最佳答案

,您不应该这样做,因为您会让其他阅读您的代码或堆栈跟踪的开发人员感到困惑。

从软件设计的角度来看,错误发生得更早。 如果您的代码类似于 API 并被其他人使用,那么您最好使用 Custom-Exceptions 并将 IOException 包装为根本原因。

如果您有完整的源代码,则应该重构源代码并添加另一个异常签名。

关于java - 抛出 IOException 而不是 Exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23480682/

相关文章:

java - 无法在我的Java应用程序中播放音频

java - 何时使用 Android 的 ArrayMap 而不是 HashMap?

java - CheckStyle SuppressionFilter 模块文件路径以实现 Eclipse 和 Maven 兼容性

java - 如何使用 Apache HttpClient 启用 SSLv3?

c++ - 如何处理 RAII 的构造函数失败

c++ - 通过名称 cpp 捕获特定异常

asp.net - 异常处理最佳实践

java - 错误 : "java.io.IOException: Type mismatch in key from map" on my MapReduce class (using Hadoop 2. 2.0)

java - 2D 元胞自动机故障

java - tomcat 的 localhost_access 日志中缺少错误请求,而 Jackson 调用期间的 IOException 出现在应用程序日志中