java - 导致异常的多个 Java 根本原因

标签 java exception exception-handling

我有一个有趣的场景,我在 catch 子句中设置了 HttpServletResponse 错误。 “response.sendError(..)”也会抛出异常。在异常处理期间处理异常以保留原始异常详细信息的最佳方法是什么?

我有这样的事情:

try {
...
} catch(Exception e) {
  try {
      response.sendError(500);
    } catch(IOException e2) {
      //Can I do something like:
      //'throw new ServletException(e,e2)' here?
    }
}

换句话说,将来自两个异常的信息捆绑到下一个抛出的异常中的最佳方法是什么?我不想在处理第二个异常时丢失第一个异常中的信息。

一般来说,多个 try catch 块对于可读性来说似乎很糟糕。理想情况下希望避免这种困惑。总是可以将嵌入的 try/catch 捆绑在一个方法中……尽管看起来仍然很糟糕,并且无法解决保留所有异常细节的问题。

最佳答案

尝试:

try {
...
} catch(Exception e) {
  try {
      response.sendError(500);
    } catch(IOException e2) {
      e2.initCause(e);
      throw e2;
    }
}

关于java - 导致异常的多个 Java 根本原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15776730/

相关文章:

java - 无法对 selenium 中禁用的元素使用发送键

java - 需要为 EmptyStacks 创建一个新的 RunTimeException

asp.net-mvc-3 - ASP.NET MVC 中全局错误/异常处理的最佳实践是什么?

c++ - 如何从构造函数返回错误代码?

java - 在 Java 中, "5/0"语句不会在我的 Linux 机器上触发 SIGFPE 信号,为什么?

ruby-on-rails - 将所有路由错误重定向到应用程序的根 URL

java - 问题 java gradle "Could not find org.jnetpcap:jnetpcap:1.4.1."

java - HTTP 状态 404 Servlet 重定向错误

java - 错误 : Java Swing Key Bindings Lose Function with JDK 7 in OSX with awt setFullScreenWindow

java - 我收到错误 : "exception FileNotFoundException is never thrown in body of corresponding try statement" and cannot figure out why