Rav*_*pta 4 java try-catch throwable
API doc说从不捕获Throwable子类Error表示异常行为.这是否意味着Error和Exception之间的隔离是告诉程序员应该捕获哪个子类,哪个不应该?或者还有更多呢?
一般来说,Error是一个严重错误的东西(通常在平台本身内)是你无法想象的.我唯一关心捕捉的Error是为了记录它,之后我重新投掷.
这非常重要,因为很容易让错误(和运行时异常)以一种永远不会记录它们的方式传播到调用堆栈中(例如executorService.submit(Runnable),在不监听返回的情况下使用Future)
Errors通常是这样的:
然后我会说RuntimeExceptions通常(虽然不总是)表示编程错误:
我通常会建议在这些上快速失败,但这是一个灰色区域; 也许你在将用户输入传递给服务器之前不检查用户输入 - 这值得崩溃你的应用程序!
Checked Exception(即非运行时)应该用于您可能合理预期会发生并合理(或可想象)处理代码的内容.我个人喜欢检查异常,但由于以相同方式处理不同异常类型所涉及的冗长/重复(即在多个相同的catch块中),这些异常繁琐.像Scala这样的语言有更好的捕获语法,但随后它们也删除了检查异常的概念!
| 归档时间: |
|
| 查看次数: |
1382 次 |
| 最近记录: |