确实有趣的话题!
在阅读并尝试了多种方法来处理一般错误和异常之后,我特别了解了 程序员错误 和 预期错误 之间的区别。
程序员的错误 绝不应该被发现,而应尽早而艰难地崩溃(!)。程序员错误是由于逻辑故障引起的,根本原因应得到解决。
*应始终捕获 *预期的错误 。同样,当捕获到预期的错误时,必须为用户显示一条消息。这有一个重要的含义-
如果预期的错误不应显示错误,则最好检查该方法是否将抛出而不是让其抛出。
因此,将其应用于您的示例时,我会认为“用户应该如何看待?”
- 如果应该显示错误消息(在浏览器输出,控制台,消息框中),我将抛出一个异常并将其捕获到 尽可能靠近UI的位置 ,然后输出错误消息。
- 如果没有错误消息显示,我将检查输入内容而不抛出错误。
在阿里纳斯:我从来不扔
DivideByZeroException也不是
NullPointerException-我让JVM抛出那些对我来说。在这种情况下,您可以酿造自己的异常类或使用合适的内置检查异常。



