gpt4 book ai didi

c# - 捕获已处理的异常

转载 作者:行者123 更新时间:2023-12-02 15:44:57 25 4
gpt4 key购买 nike

嘿:)
有什么方法可以全局捕获已处理异常吗?我知道我们可以使用“AppDomain.CurrentDomain.UnhandledException”和“Application.ThreadException”捕获未处理的异常,但我想对已经捕获的异常添加一些处理(例如写入日志等)

谢谢

最佳答案

一般来说,您可能希望在代码中尽可能的最低级别捕获异常。它们距离异常发生​​的位置越近,您解决导致它们的问题的机会就越大。

如果您无法在此级别采取任何纠正措施来解决导致异常的问题,那么您根本不应该处理它. 只需让异常冒泡,然后按照您想要的方式在全局范围内处理它即可。

话虽这么说,如果您已经在较低级别处理了异常,您能够在较高级别捕获它的唯一方法就是: rethrow it 来自较低级别的 Catch block 。
因此,例如:

try
{
//your code
}
catch (SomeException e)
{
//take any relevant handling measures

//rethrow the exception
throw;
}

当然,从技术上讲,这意味着较低级别的 Try/Catch block 未处理异常,但这是您在较高级别捕获任何内容的唯一方法级别。

有关重新抛出异常的更多信息,请参阅:

关于c# - 捕获已处理的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4264276/

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