【发布时间】:2016-10-16 12:21:05
【问题描述】:
有人告诉我,我应该考虑在我的代码中将 Unchecked 异常 抛到 Checked 异常 之上,不仅如此,而且要扩展 RuntimeException强> 用我自己的。 现在,我明白了两者的区别,但还是不明白为什么要这么做?
如果我有这个抛出 2 种异常的方法头:
public static Optional<String> getFileMd5(String filePath) throws NoSuchAlgorithmException, IOException {}
为什么我应该用一个(不太详细的)例外来替换它们?
【问题讨论】:
-
“我为什么要用一个(不太详细的)例外来替换它们?”你不应该。唯一可以替换它们的是
Exception,这意味着您要告诉调用代码的人可能会引发任何异常,他们必须相应地处理所有异常.这就像一个返回Object的方法:任何东西都可以返回,所以你必须为任何事情做好准备。声明您抛出特定异常意味着他们只知道处理这些异常。
标签: java exception-handling checked-exceptions unchecked-exception