我正在重构旧代码,我想解决的一件事是处理错误的方式。我很清楚异常以及它们是如何工作的,但我不完全确定它们是我试图处理的情况的最佳解决方案。
在这段代码中,如果事情没有得到验证,那么展开堆栈真的没有理由或优势。我们完成了。试图挽救这艘船毫无意义,因为它是通过 Sun Grid Engine 并行运行的非交互式代码。用户无法干预。更重要的是,这些验证失败并不真正代表特殊情况。他们是意料之中的。
那么我该如何最好地处理这个问题呢?我不确定我想要的一件事是每个可能失败的类方法中的退出点。这似乎是不可维护的。我错了吗?在这样的代码中调用exit()
或abort()
在故障点是否可以接受?或者我应该一直抛出异常回到main中的一些通用catch语句?有什么好处?