带有isFatal标志的异常处理程序

时间:2014-02-15 21:33:03

标签: c# exception-handling

我想在C#app中为处理和未处理的异常编写一个Exception处理程序。但是对于已处理的应用程序,我希望能够指定应用程序是应该关闭还是继续(例如,如果数据库连接不起作用,那么没有一点继续正确......)。我观察到Exception类有一个叫做“Data”(字典)的东西来传递消息,但我不太相信它是我们应该指定关闭应用程序的标志的地方。我更倾向于使用Boolean属性创建Custom Exception类。数据可用于某些关于异常的自定义消息,但似乎不是应用程序内的通信位置。我很想知道我的理解是否正确,这是处理异常的一般方法还是有更好的方法。

1 个答案:

答案 0 :(得分:0)

如果您正在制作WinForms应用,请在Main()方法中加载第一个Form之前初始化数据库。如果抛出异常,请捕获它并向用户显示一个MessageBox,通知他们无法初始化数据库连接,并且在return接受Main()时保持表单永远不会被加载。 (在加载表单之前,您还可以链接任何其他类似的东西,以确保在实际的UI启动后一切都能正常工作。)

除此之外,如果默认的.NET Exceptions不提供您需要的功能(如您的情况),或者您希望确保在发生错误类型时发生自定义错误处理,则自定义异常类很有用。使用默认异常可能会导致与.NET语言代码和您自己的代码抛出的异常重叠。拥有这样的旗帜会起作用,但这取决于你将它赶上筹码的位置。