B. *_*non 2 c# exception-handling exception
我在我的数据类中使用了以下模式的catch块:
} catch (OracleException e) {
log.Error(e, e);
ExceptionNotification.Show(e, "Platypus data not found for Platypus");
throw;
}
Run Code Online (Sandbox Code Playgroud)
("log"是log4net;之后是我们花哨的异常显示对话框).
当我删除"throw"时,我得到"并非所有代码路径都返回值"
如果我到达异常块,我想要返回的对象(一个OracleDataTable,一个List,一个Dictionary <>或一个自定义类,通常可能是null,或者最好不会感觉太好.我可以返回到mollify编译器?
声明返回类型的方法的每个代码路径都必须返回一个值或抛出异常.
如果您不想抛出,则必须返回适当的值
} catch (OracleException e) {
log.Error(e, e);
ExceptionNotification.Show(e, "Platypus data not found for Platypus");
return SomeMeaningfulReturnValue;
}
Run Code Online (Sandbox Code Playgroud)
但是,除非你可以返回的值实际上对调用者有意义(而不是说返回null并且发明代码契约"null意味着存在问题)",我会坚持使用异常时抛出异常的约定错误.
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |