- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我宁愿说快速失败而不捕获 Throwable 是一个很好的做法。但如果请求处理器中出现未处理的异常,如 StackOverflowError,任务可能会停止。这并不总是听起来不错。我宁愿一遍又一遍地捕获 StackOverflowError,但可能会处理一些任务。这里有什么好的做法?
最佳答案
没有关于捕获 Error
和 Throwable
的“良好实践”或“最佳实践”1。
一方面,在某些情况下,JVM 可以从某些类型的错误
中成功恢复。例如,如果您在不与其他线程(直接或间接)交互的单个线程上运行“任务”,则该线程可以安全地从 StackOverflowError
和可能的2 OutOfMemoryError
。
另一方面,许多 Error
子类表示应用程序或 JVM 处于无法恢复或不可行的状态:
错误
意味着某些类将处于不可用状态。依赖该类的应用程序将无法继续。OutOfMemoryError
错误,它可能会让其他线程等待可能永远不会到达的通知等.我的建议是注意 javadoc 中隐含的建议对于 Error
而不是捕获并尝试从 Error
或其子类中恢复。如果您尝试恢复,请考虑应用程序可能“楔入”的可能性。
1 - 实际上,根本没有“最佳实践”;见https://www.satisfice.com/blog/archives/5164
2 - 这取决于根本原因。如果根本原因是代码库中其他地方的内存泄漏,那么恢复是个坏主意。 OOME 可能会以越来越高的频率再次出现。
关于java - 在调度程序中捕获 Throwable 是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57090854/
在我生活的世界中,构建一个将所有飞镖都扔到墙上的解决方案,并希望其中一些能命中靶心是一种非常糟糕的解决方案方法。 那么,我的问题出现了,什么时候在约定可接受的生产系统中使用 INSERT IGNORE
在数据处理时,经常会因为index报错而发愁。不要紧,本次来和大家聊聊pandas中处理索引的几种常用方法。 1.读取时指定索引列 很多情况下,我们的数据源是 CSV 文件。假设
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 6 年前。 Improve
我是一名优秀的程序员,十分优秀!