gpt4 book ai didi

java - 您是否应该将异常转换为断言以在客户处禁用它们?

转载 作者:行者123 更新时间:2023-12-02 07:09:26 28 4
gpt4 key购买 nike

我的一个 friend 开始在他的 Java 项目中使用异常。由于未捕获的异常会终止程序,因此他基本上将所有异常转换为断言。因此,他可以在客户现场关闭所有异常(exception)情况。 (实际上,他不需要禁用它们,而是必须在开发过程中使用 -ea/-enableassertions 启用它们。)

class Logger {
public static void logException(Throwable e) {
assert false : e.getMessage();
}
}

这是在客户站点禁用异常的合理方法吗?有哪些替代方案以及他的方法的重要缺点是什么?

请注意,他非常坚决地禁用客户的异常(exception)情况。 (因此,这种类型的答案:“不要在客户处禁用异常。”对我没有帮助,但可能对其他有类似问题的人有帮助。)

最佳答案

郑重声明,首先我要说的是,您不应该永远不要盲目地禁用运行时异常。这些终止你的程序是有原因的。 Java 已经进入了 WTF 的糟糕状态,并希望尽可能安全地让你摆脱困境。您的程序显然有问题,您越早知道越好。您最不想看到的就是您的客户认为一切都很顺利,而他们的程序却一团糟。

我认为处理这个问题的正确方法是捕获不同级别的异常并提供有效的替代方案。也许你可以放弃一份工作并重新提交。也许您向用户提供一个错误,通知他们该问题(并可能帮助他们下次避免这种情况)。这里的要点是,您可能不应该首先发生完全未捕获的(运行时)异常;在代码中的某个地方,并且希望在多个逻辑级别上,您应该尽可能以编程方式优雅地处理这些异常。

关于java - 您是否应该将异常转换为断言以在客户处禁用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15716565/

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