java - 如何在 Java 中将未检查的异常转换/包装为已检查的异常?

标签 java exception checked-exceptions unchecked-exception

Java 中Unchecked Exceptions 可以转换为Checked Exceptions 吗? 如果是,请提出将 Unchecked Exception 转换/包装为 Checked Exception 的方法。

最佳答案

是的。您可以捕获未检查的异常并抛出已检查的异常。

示例:

  public void setID (String id)
    throws SomeException
  {
    if (id==null)
      throw new SomeException();

    try {
      setID (Integer.valueOf (id));
    }
    catch (NumberFormatException intEx) { // catch unchecked exception
      throw new SomeException(id, intEx); // throw checked exception
    }
  }

然后,在已检查异常的构造函数中,您使用传递的异常调用 initCause:

  public SomeException (String id, Throwable reason)
  {
    this.id = id;
    initCause (reason);
  }

关于java - 如何在 Java 中将未检查的异常转换/包装为已检查的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27473519/

相关文章:

python - 什么时候应该在 Python 中使用 Try-Except 语句?

java - Java 中的异常类型

java - 运行时/已检查/未检查/错误/异常之间的差异

java - 如何在父类(super class)中使用私有(private)实例变量?

eclipse - 配置m2eclipse : "Eclipse is running in a JRE but a JDK is required"

java - 无法使用 JSP 连接到 mySQL 数据库

java - 为什么Java中的运行时异常是 "unchecked"?

java - 解码错误 : unexpected element (uri: local:), 预期元素为

python - 在一行中捕获多个异常( block 除外)

c# - 抛出异常后应用程序不退出