c# – 捕获大多数派生的异常?

在.NET中,当捕获异常时,我是否应该总是捕获派生异常(所以不是ArgumentException而是派生类型)?

也:

如果我被要求使用错误代码,这会是在构造函数中这样吗?:

抛出新的异常(“4000”,ex);

或者是带有errorcode属性自定义异常类型? (这可能会与sqlException等异常类型混淆,后者的错误代码映射到sql Server错误).

谢谢

解决方法

>抓住您知道如何处理的最广泛的例外.

一般来说,这意味着您将捕获一个非常具体的异常.并且一些异常(如ArgumentExceptions)不应该在所有b / c中捕获它们表示逻辑错误而不是运行时错误.我发现捕获更广泛的异常有用的地方是File I / O. IOException可以是捕获的实际更高级别的异常.
>如果要求您使用错误代码,您可以使用异常的message属性来包装它,但我绝不会将其用作避免抛出适当类型异常的理由.这是因为这里有两个不同的问题:

一个.错误代码用于提供在现场发生故障时可以查找的特定信息.它永远不应该用于以编程方式区分异常类型b / c语言具有为此设计的特定工具:异常类型.

湾适当类型的例外是提供区分异常的编程方式.该语言是为它设计的,使用它.不要抛出一个简单的例外.

我可能会在Exception.Data collection中抛出一个错误代码.这可以避免覆盖Exception.Message中的消息,否则这些消息对于诊断目的非常有帮助.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...