【发布时间】:2010-08-04 11:51:46
【问题描述】:
我有一些如下所示的 UI 代码:
try
{
SomeClass classInstance = new SomeClass(someId);
}
catch (Exception exception)
{
// Content wasn't created, show a message, stop processing
return;
}
似乎添加了 try catch,因为如果 SomeClass 的构造函数接收到的 someId 无效,并且无法在 DB 中找到数据,那么它的构造函数就会崩溃。
最近通过 FXCop 运行此代码,它警告不要使用一般异常,但 SomeClass 所做的只是抛出一个新异常,并显示一条消息说它无法初始化。
我想问题是类构造函数应该有它自己的自定义异常,然后我可以在我的 UI 中处理它,但我想知道我还能对上面的代码做些什么来处理满足 FXCop 要求的异常?
【问题讨论】:
-
如果
SomeClass抛出一个通用的Exception,那么您的代码是(据我所知)捕获它的唯一方法。这里的问题在于SomeClass的作者 - 告诉 FXCop 在这个问题上别管它。 -
我同意 - 在 SomeClass 不接受修改的情况下,这可能是我必须考虑的。值得庆幸的是,我从作者那里继承了 SomeClass,所以我可以继续以正确的方式修复他的代码——上面的问题更像是“如果我做不到怎么办?”场景。
标签: c# exception exception-handling try-catch