何时应使用 Throwable 而不是新的异常?

2022-09-01 00:33:30

给定:是 的超类。ThrowableException

当我阅读有关编写自己的“例外”的文本时,我看到在块中使用的示例,而其他文本显示正在块中使用。我还没有看到何时应该使用每种方法的解释。Throwablecatchnew Exception()catch

我的问题是,什么时候应该使用,什么时候应该使用?Throwablenew Exception()

在 或 块中使用以下任一项:catchelse

throw throwable;

throw new Exception();

答案 1

总是抛出一个(从不扔一个)。你通常不会抓住,但你可以。Throwable是和的超类,所以如果你不仅想抓住s而且想抓住s,你就会抓住,这就是拥有它的意义。问题是,s通常是普通应用程序不会也不应该捕获的东西,所以除非你有特定的原因才能使用。ExceptionThrowableThrowableExceptionErrorThrowableExceptionErrorErrorExceptionThrowable


答案 2

(来自评论)提出这个问题的问题是,如果集合没有构建,我需要将“异常”传递给同事正在构建的一段代码。

在这种情况下,您可能希望引发已检查的异常。您可以抛出一个 Exception,一个适当的现有子类(RuntimeException 及其未选中的子类除外)或自定义子类(例如 “”)。请参阅有关异常的 Java 教程,快速了解 Java 异常。ExceptionCollectionBuildException