Exception 检测被引用DLL(.Net)中的方法引发的异常

Exception 检测被引用DLL(.Net)中的方法引发的异常,exception,dll,nullreferenceexception,Exception,Dll,Nullreferenceexception,我有c#.net代码,它从另一个外部/引用的.net程序集调用一个方法。如果我正在传递的对象的某个属性为null,则我正在调用的方法将引发异常。简而言之: 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方法的客户端代码中,我希望能

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

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属性为null或empty”消息来区分的。当前,当它命中此方法时,我得到一个NullReferenceException,因此我捕获此异常

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

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


显然,我可以反汇编第三方DLL来发现我要传递的obj必须具有这个“Foo”属性集。所以,我这里的问题是为了练习(因为我是n00b)。

捕获System.Exception并显示exceptions消息属性是我所需要的。起初,我在Add方法中不断得到一个带有“Object reference not set to instant of a Object”消息的NullReferenceException,但我希望得到一个带有消息“Foo property is null或empty”错误的异常。我的代码中的某些条件发生了变化,我现在得到了我期望的结果。

这是一种非常糟糕的做法,本地化你的应用程序会破坏你的代码。@Hans我不明白-捕获我调用的代码抛出的异常是一种糟糕的做法?我不知道你说的“本地化”是什么意思。你能帮我吗?@hans为了简洁起见,这里没有本地化。我同意你的意见