gpt4 book ai didi

exception-handling - 你什么时候写你的异常处理程序?

转载 作者:行者123 更新时间:2023-12-04 07:57:58 25 4
gpt4 key购买 nike

在开发过程中,您通常在什么时候实现异常处理程序?你是在编写周围代码的同时编写它们,还是编写代码然后再回来“强化”它?

我通常会选择后者,以便我可以准确地看到我的代码在哪里以及如何失败,但我担心我的代码没有我立即编写异常处理程序时的弹性。

同时,我不想花费大量的开发时间来弄清楚我的代码在还有其他我尚未确定的实现细节时可能会失败的所有可能方式。

我很好奇其他开发人员是如何做到这一点的。

更新:我只是想感谢大家的回答!

最佳答案

我要么立即编写异常处理程序,要么允许异常向上传播。我非常喜欢我所说的“你以后不会回去修复它,是吗?”原则。你说你会,但老实说,一旦你开始工作,你以后就不会回去修复它,是吗?现在就得到它!立即编写您的异常处理程序,或添加 throws条款并使它成为别人的问题。立即做正确的事。

但你知道吗,有时你不能。无论你做什么,不要吞下异常 带有空的异常处理程序!这是邪恶的:

try {
connection.close();
}
catch (Exception e) {
// TODO Auto-generated code
}

我会踢我团队中任何检查过的人。

如果您真的不知道如何处理异常并且无法添加 throws条款向上传播它,至少做一些半责任的事情。如果没有别的,打印堆栈跟踪。这并不理想,但至少你没有隐藏错误。
catch (IOException exception) {
exception.printStackTrace();
}

通过应用程序的日志系统记录它会更好,但您不应该养成它的习惯。处理这些事情应该是调用者的责任。
catch (IOException exception) {
log.error(exception, "Unable to open configuration file %s.", fileName);
}

作为最后的手段,您可以绕着您的 throws 跑一圈。将您的异常包装在 RuntimeException 中.至少你给了调用链更高层的人处理错误的机会,这通常是正确的做法。
catch (IOException exception) {
throw new RuntimeException(exception);
}

关于exception-handling - 你什么时候写你的异常处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1021063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com