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

c# – 捕获大多数派生的异常?,第1张

概述在.NET中,当捕获异常时,我是否应该总是捕获派生异常(所以不是ArgumentException而是派生类型)? 也: 如果我被要求使用错误代码,这会是在构造函数中这样吗?: 抛出新的异常(“4000”,ex); 或者是带有errorcode属性的自定义异常类型? (这可能会与SqlException等异常类型混淆,后者的错误代码映射到SQL Server错误). 谢谢 >抓住您知道如何处理的最 在.NET中,当捕获异常时,我是否应该总是捕获派生异常(所以不是ArgumentException而是派生类型)?

也:

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

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

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

谢谢

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

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

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

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

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

总结

以上是内存溢出为你收集整理的c# – 捕获大多数派生的异常?全部内容,希望文章能够帮你解决c# – 捕获大多数派生的异常?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1249895.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存