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

前端之家收集整理的这篇文章主要介绍了c# – 捕获大多数派生的异常?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在.NET中,当捕获异常时,我是否应该总是捕获派生异常(所以不是ArgumentException而是派生类型)?

也:

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

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

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

谢谢

解决方法

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

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

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

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

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

猜你在找的C#相关文章