为啥我们不能只抛出异常/可抛出而不是有多个异常[重复]

Posted

技术标签:

【中文标题】为啥我们不能只抛出异常/可抛出而不是有多个异常[重复]【英文标题】:Why can't we just throw Exception/Throwable instead of having multiple exceptions [duplicate]为什么我们不能只抛出异常/可抛出而不是有多个异常[重复] 【发布时间】:2021-04-17 17:57:35 【问题描述】:

这个问题听起来可能很愚蠢,但是为什么我们必须抛出几个异常而我们只能抛出 Throwable 或 Exception 呢?

【问题讨论】:

【参考方案1】:

据我所知,这类似于为什么在 try-catch 块中,程序员喜欢在单独的 catch 子句中列出各种异常,而不是仅仅捕获整体的异常。这主要是可读性和文档的最佳实践。任何其他阅读您的程序的人都会清楚地知道正在跟踪或抛出哪些错误。例如,如果我正在阅读其他人处理音频输入输出的密集代码,那么如果我知道我可以期待一个 LineUnsupportedException 而不仅仅是一个通用异常,这对我来说会提供更多信息。

【讨论】:

以上是关于为啥我们不能只抛出异常/可抛出而不是有多个异常[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在处理关闭的结果集期间捕获了一个可抛出的异常:下一个

为啥 typeof 有时只抛出 ReferenceError?

Java中throw之后还会继续运行吗

为啥内部异常到达 ThreadException 处理程序而不是实际抛出的异常?

为啥在构造函数中抛出异常会导致空引用?

为啥 HttpWebRequest 会抛出异常而不是返回 HttpStatusCode.NotFound?