加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 08:30:46 所属栏目:百科 来源:网络整理
导读:在.NET中,当捕获异常时,我是否应该总是捕获派生异常(所以不是ArgumentException而是派生类型)? 也: 如果我被要求使用错误代码,这会是在构造函数中这样吗?: 抛出新的异常(“4000”,ex); 或者是带有errorcode属性的自定义异常类型? (这可能会与SqlExcepti
在.NET中,当捕获异常时,我是否应该总是捕获派生异常(所以不是ArgumentException而是派生类型)?

也:

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

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

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

谢谢

解决方法

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读