Gur*_*epS 6 c# exception-handling exception
在.NET中,当捕获异常时,我是否应该总是捕获派生异常(所以不是ArgumentException而是派生类型)?
也:
如果我被要求使用错误代码,这会是在构造函数中这样吗?:
抛出新的异常("4000",ex);
或者是带有errorcode属性的自定义异常类型?(这可能会与SqlException等异常类型混淆,后者的错误代码映射到SQL Server错误).
谢谢
抓住您知道如何处理的最广泛的例外.
一般来说,这意味着您将捕获一个非常具体的异常.并且一些异常(如ArgumentExceptions)不应该在所有b/c中捕获它们表示逻辑错误而不是运行时错误.我发现捕获更广泛的异常有用的地方是File I/O. 一个IOException可实用的更高级别的异常捕捉.
如果要求您使用错误代码,您可以使用异常的message属性来包装它,但我绝不会将其用作避免抛出适当类型异常的理由.这是因为这里有两个不同的问题:
一个.错误代码用于提供在现场发生故障时可以查找的特定信息.它永远不应该用于以编程方式区分异常类型b/c语言具有为此设计的特定工具:异常类型.
湾 适当类型的例外是提供区分异常的编程方式.该语言是为它设计的,使用它.不要永远丢一个普通的Exception.
我可能会在Exception.Data集合中抛出错误代码.这避免了覆盖消息Exception.Message,否则将非常有助于诊断目的.
| 归档时间: |
|
| 查看次数: |
322 次 |
| 最近记录: |