2012-06-24 51 views
0

我有c#.net代码,它调用另一个外部/引用.net程序集的方法。我调用的这个方法抛出一个异常,如果来自我传递它的对象的某个属性为null。这是概括地说:检测引用DLL(.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的加载方法我的客户端代码,我想能够检测这个特定的异常发生,也许是它的“富属性区分为空或空“消息。目前,当它遇到这个方法时,我得到一个NullReferenceException,所以我发现这个异常。

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

问题2: 这被认为是不好的做法或者可能只是非典型的?

很明显,我可以反汇编第三方DLL来发现我传入的obj必须有这个“Foo”属性集。所以,我的问题在于练习(因为我是一个n00b)。

回答

0

捕获System.Exception并显示异常Message属性是我所需要的。起初,我一直在Add方法中得到一个NullReferenceException,其中“对象引用未设置为对象的即时”消息,但我希望通过消息“Foo属性为null或空”来获取Exception。我的代码中一些条件发生了变化,现在我得到了我期望的结果。

+0

这是非常糟糕的做法,本地化您的应用程序会破坏您的代码。 –

+0

@Hans我不明白 - 这是不好的做法,赶上我打电话的代码抛出异常吗?我不确定你的意思是“本地化”你能帮助我吗? – JohnZaj

+0

@hans为了简洁起见,它没有被本地化。我同意你的评论 – JohnZaj