0

我有 c#.net 代码,它从另一个外部/引用的 .net 程序集中调用一个方法。如果我正在传递的对象的某个属性为空,我正在调用的此方法将引发异常。简而言之:

public void Add(string key, object obj)
{
..
//if the Foo property from obj is null then
throw new Exception("Foo property is null or empty")
..
}

在调用 DLL 的 Add 方法的客户端代码中,我希望能够检测到引发了这个特定异常,可能通过它的“Foo 属性为空或空”消息来区分。目前,当它遇到这个方法时,我得到一个 NullReferenceException,所以我捕获了这个异常。

问题1: 我可以得到与我正在调用的代码(在引用的程序集中)引发的异常相关的错误消息吗?

问题 2: 这被认为是不好的做法还是只是不典型的做法?

很明显,我可以反汇编第三方DLL发现我传入的obj一定有这个“Foo”属性集。所以,我的问题在某种程度上是为了锻炼(而且因为我是 n00b)。

4

1 回答 1

0

我只需要捕获 System.Exception 并显示异常 Message 属性。起初,我在 Add 方法中不断收到带有“对象引用未设置为对象的即时”消息的 NullReferenceException,但我希望收到带有消息“Foo 属性为空或为空”错误的异常。我的代码中的某些条件发生了变化,现在我得到了我所期望的。

于 2012-06-24T14:50:19.083 回答