【发布时间】:2014-07-25 10:07:23
【问题描述】:
在 Java 中,如何将 Unchecked Exception 转换为 Checked Exception 并在 Java 中反之。
【问题讨论】:
在 Java 中,如何将 Unchecked Exception 转换为 Checked Exception 并在 Java 中反之。
【问题讨论】:
您无法转换。相反,您必须包装成所需类型的新异常,例如转换为未选中:
throw new RuntimeException(checkedException);
或检查:
throw new Exception(uncheckedException);
(您可能希望选择更有意义/特定的异常类型)
【讨论】:
checkedException 是null 怎么办?会发生什么?
未检查异常是RuntimeException 的子类,检查异常不是。因此,要转换一个异常,您必须更改其继承,然后修复编译器错误,因为您的新检查异常从未被声明或捕获。
【讨论】:
您无法转换它们。它们用于不同的目的。调用者需要处理已检查的异常,而未检查或运行时异常通常不会被明确处理。
【讨论】:
假设您有两个异常类ExceptionA 和ExceptionB;其中一个被选中,另一个未被选中。您想将ExceptionA 转换为ExceptionB。
假设ExceptionB 有一个类似的构造函数
public ExceptionB(Exception e) {
super(e);
}
你可以做类似的事情
catch (ExceptionA e) {
throw new ExceptionB(e);
}
将一个异常类的对象包装在另一个异常类中。
【讨论】: