当C#程序中未找到处理程序时,应采取什么正确方法?

4
我问这个问题是因为很快我将面试,而面试会主要关注错误处理,但即使我已经担任初级C#开发人员近7个月,我仍无法弄清楚这个问题。
正如标题所说,我想知道如何正确处理没有适当错误处理程序的异常。不久前,我的同事谈到了通用异常处理程序(不管那意味着什么),它负责处理这些情况。然而,尽管我做了一些搜索,但我还是找不到有关这种东西的信息。
因此,我的问题是 - 如何处理这些异常,我的子问题是 - 是否真的存在通用异常处理程序?
3个回答

5
有一种被称为“通用异常处理程序”的东西吗?
是的-这就是他们所说的处理程序,它记录异常并在退出程序之前存储尽可能多的信息。设置这样的处理程序的一种方法是将处理程序添加到您的AppDomain对象的UnhandledException事件中。
从.NET的角度来看,它既不是“通用”的,也不是一个“处理程序”,因为没有涉及通用类型,并且处理程序可以执行的操作相当有限。与真正的处理程序不同,后路的“处理程序”可以查看已触发的异常,但无法使执行继续。

我明白了,想想看,我认为这正是他一直在做的事情。我一直在寻找这个答案。 - Leron

1
未捕获的异常将导致应用程序崩溃。您可以订阅AppDomain.UnhandledException事件以获得有关此类情况的通知,在日志中编写一些消息等等。
但是,在处理程序中无法防止应用程序崩溃,因为没有可以继续执行的点。

1
您处理未计划异常的方式是捕获它们,将它们记录到某个开发人员将查看错误的地方,然后中止正在尝试的操作。这可能意味着向用户显示错误消息,关闭应用程序或让类似ASP.NET的框架处理异常(它会通过显示通用错误页面来“处理”它)。
由于存在漏洞,未计划异常总是可能发生的。您需要一个处理策略(如上所述)。
一个“通用”的异常处理程序将是catch (Exception ex)。换句话说,是一个捕捉所有异常的处理程序。虽然这不是正式术语,但那就是这个人的意思。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接