gpt4 book ai didi

exception-handling - 学习异常处理模式

转载 作者:行者123 更新时间:2023-12-04 07:52:13 26 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

5年前关闭。




Improve this question




在编程中一直让我感到困惑的一件事是使用适当的异常处理。 Code Complete 指出,通常 90% 的代码都专注于处理异常。虽然我知道实现基本异常的基础知识,但我还没有为如此重要的主题找到好的通用资源。

我正在寻找好的资源(不一定与特定语言相关)来学习如何实现良好的异常处理技术。 stackoverflow 上的大多数异常处理主题似乎都关注特定语言的特定情况。你有什么建议?

最佳答案

多年来,我一直是安全关键系统的设计师和编码人员,这种系统的关键是稳健性,其中一个方面是异常处理。

一些基本的最佳实践:

1)在任何级别,只捕获那些你可以处理的异常。 “处理”几乎总是意味着重试或放弃你试图做的事情,这通常意味着你应该在发出异常抛出调用的地方捕获异常。

2) 准确捕捉 API 文档中列出的那些异常,不多也不少。即使列出了五个调用异常,也不要捕获它们的公共(public)基类(如果它们有一个)。但是,您并不总是需要在同一个地方从同一个调用中捕获所有异常。

3)不要将细节异常传递到它们不携带有意义信息的水平。相反,在低级别捕获异常,在适当的情况下记录它并返回状态代码或向上面的调用者抛出更通用的异常。

4) 仅在处于临界区时才使用(并且确实使用)包罗万象的处理程序。捕获异常,放弃资源(信号量或其他),重新抛出异常。

5) 记录异常不是处理它。如果您在特定处理程序中所做的只是记录异常,那么您可能应该摆脱该处理程序。

6) 对循环中的异常处理程序要非常小心,尤其是在抛出异常时没有延迟或出路的循环。这样,您很容易陷入忙碌的循环中。

关于exception-handling - 学习异常处理模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7570719/

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