gpt4 book ai didi

c# - 如何处理大型代码库中的异常

转载 作者:行者123 更新时间:2023-11-30 16:33:50 25 4
gpt4 key购买 nike

我有一个很大的 C# 代码库。它有时看起来很麻烦,我想知道是否有一种快速的方法来改进客户端 PC 上发生的问题的查找和诊断。

最紧迫的问题是软件中出现异常,被捕获,甚至报告给我。问题是当它们被捕获时,异常的原始原因已经丢失。

即如果在特定方法中捕获了异常,但该方法调用了 20 个其他方法,并且这些方法每个都调用了 20 个其他方法。你明白了,空引用异常是不可能找出来的,尤其是当它发生在客户端机器上时。

我目前发现了一些我认为更容易发生错误的地方,并将这些地方直接包装在它们自己的 try catch block 中。那是唯一的解决办法吗?我可以在这里待很长时间。

我不关心异常是否会导致当前进程崩溃(无论如何它只是一个线程 - 不是主应用程序),但我关心的是异常返回并且无助于故障排除。

有什么想法吗?

我很清楚我可能会问一个听起来很愚蠢的问题,而且可能没有直接的答案。尽管如此,一些讨论还是不错的。

最佳答案

异常维护调用堆栈,您可以使用它来跟踪异常的来源除非异常被错误地重新抛出或被吞没。对于前者,我的意思是:

try
{
//...
}
catch ( Exception e )
{
//do stuff with exception
throw e;
}

代替:

try
{
//...
}
catch ( Exception )
{
//do stuff with exception
throw;
}

后者维护调用栈,而前者不维护。通常,代码应该只捕获它计划处理的异常,而不是所有异常。如果代码以这种方式正确设计,那么当最顶层捕获异常时,您应该通过调用堆栈获得启动事件链的方法。

关于c# - 如何处理大型代码库中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2854410/

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