java - 重新抛出 RuntimeException 的子类

标签 java exception

我正在创建一个通用类,它接受一个它愿意处理的异常列表作为参数。

public class MyClass {
  public MyClass (List<Class<? extends RuntimeException>> exceptions) ...
  public execute() {
    try {
      justObj.call()
    } catch(RuntimeException e) {
      if exceptions.contains(e.getClass()) {...}
      else {throw e;}
    }

我希望抛出的异常是我捕获的原始异常,例如如果它是 NullPointerException,那么我希望抛出的是 NullPointerException,而不是现在的 RuntimeException。

知道如何实现吗?

最佳答案

当您捕获 RuntimeException(或任何子类)时,它不会更改对象/异常的类型。如果它是一个 NullPointerException,当你再次抛出它时它仍然是这种类型的对象(就像你在代码中那样)

关于java - 重新抛出 RuntimeException 的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7742038/

相关文章:

java - 如何在appium中的菜单栏中向右滚动?

ruby-on-rails - Action Controller : Exception - ID not found

Java——必须抛出异常,但如何抛出?

java - Try-Catch 异常处理不提供正确的响应

Java:FontMetrics 上升不正确?

java - 仅出于测试目的模拟 Web 服务

java - 使用标准 java.sql.Connection 关闭 apache derby 连接

java - 尝试在 map 中设置字符串时出现 WRONGTYPE 异常 (jedis)

java - 在 Java 中从调用者或在它调用的方法中进行所有必要的检查是否更好?

java - 对象映射字段