在C#程序的调用堆栈中找不到处理程序时,正确的方法是什么

在C#程序的调用堆栈中找不到处理程序时,正确的方法是什么,c#,.net,exception-handling,C#,.net,Exception Handling,我问这个问题是因为很快我的面试就要把重点放在错误处理上,但这也是我一直没有弄明白的,尽管我已经做了将近7个月的初级C#开发者 正如标题所说,我想知道什么是处理没有适当错误处理程序的异常表单的正确方法。不久前,我听到我的一位同事谈到负责处理案例场景的通用异常处理程序(不管这意味着什么)。不过我还是在谷歌上搜索了一下,我还没有找到关于这类事情的信息 所以我的问题是-如何处理这些类型的异常,我的子问题是-真的有所谓的通用异常处理程序吗?未捕获的异常将导致应用程序崩溃。您可以订阅AppDomain.Un

我问这个问题是因为很快我的面试就要把重点放在错误处理上,但这也是我一直没有弄明白的,尽管我已经做了将近7个月的初级C#开发者

正如标题所说,我想知道什么是处理没有适当错误处理程序的异常表单的正确方法。不久前,我听到我的一位同事谈到负责处理案例场景的通用异常处理程序(不管这意味着什么)。不过我还是在谷歌上搜索了一下,我还没有找到关于这类事情的信息


所以我的问题是-如何处理这些类型的异常,我的子问题是-真的有所谓的通用异常处理程序吗?

未捕获的异常将导致应用程序崩溃。您可以订阅AppDomain.UnhandledException事件以获得有关此类情况的通知,并在日志e.t.c中写入一些消息

但是,您无法防止应用程序在该处理程序中崩溃,因为执行将无法继续

真的有所谓的通用异常处理程序吗

是-这就是他们所说的处理程序,它记录异常并在退出程序之前存储尽可能多的信息。设置这样的处理程序的一种方法是将处理程序添加到
AppDomain
对象的事件中


它既不是.NET意义上的“泛型”也不是“处理程序”,因为不涉及泛型类型,而且处理程序可以执行的操作相当有限。与真正的处理程序不同,真正的处理程序可以阻止或重新抛出它所处理的异常,最后一次机会“处理程序”可以看到抛出的异常,但不能导致执行继续。

处理计划外异常的方法是捕获异常,将它们记录到某个地方,让开发人员检查它们是否存在错误,然后以这种方式中止正在尝试的操作。这可能意味着向用户显示错误消息、关闭应用程序或让ASP.NET之类的框架处理异常(它将通过显示一般错误页来“处理”异常)

由于错误,总是会发生计划外异常。你需要一个策略来处理这个问题(如上所述)


“通用”异常处理程序将是一个
catch(exception ex)
。换句话说,这是一个包罗万象的问题。这不是一个官方术语,但这就是这个人的意思。

我明白了,仔细想想,我发现这正是他一直在做的事情。我一直在寻找这个答案。