C# Can';t访问异常属性

C# Can';t访问异常属性,c#,C#,我正在捕获一个ArgumentException,我需要它的一个特定属性。当我在捕获ArgumentException的代码上放置断点时,我看到它有一个ErrorMessage属性: 但尝试访问它会得到以下结果: 这里发生了什么?问题是,在第一个屏幕截图中,您显示了HttpWebResponse或类似的对象,而在第二个屏幕截图中,您正在处理实际的异常 异常具有消息属性,而不是错误消息。将第二个代码更改为ex.Message,它就会工作。解释是第一个屏幕截图不是异常内部的标记。 Argumen

我正在捕获一个
ArgumentException
,我需要它的一个特定属性。当我在捕获
ArgumentException
的代码上放置断点时,我看到它有一个
ErrorMessage
属性:

但尝试访问它会得到以下结果:


这里发生了什么?

问题是,在第一个屏幕截图中,您显示了
HttpWebResponse
或类似的对象,而在第二个屏幕截图中,您正在处理实际的异常


异常具有
消息
属性,而不是
错误消息
。将第二个代码更改为
ex.Message
,它就会工作。

解释是第一个屏幕截图不是异常内部的标记。
ArgumentException
没有“ArgumentException”消息。这是绝对肯定的

第一张截图指的是什么?我真的不知道,但它似乎是某种服务上下文,已经用相关信息进行了更新


顺便说一句,您可能正在搜索异常的
消息
属性。

有趣的问题/第一个屏幕截图。我想调试器会添加一些细节,它上面没有
ErrorMessage
属性…异常的实际类型是否可能是从
ArgumentException
继承的某类?类系统中没有ErrorMessage属性。ArgumentException您确定您指的是这个类而不是某种类型的类派生类(还有其他属性不属于此类)第一个屏幕截图看起来更像是一个
HttpWebResponse
,而不是实际的异常。我的坏蛋。虽然这显示为ArgumentException,但进一步检查发现它是ServiceStack引发的WebServiceException。我将与负责该代码的人交谈,以更清楚地说明引发了何种异常。如果我这样做,我的错误消息的内容将只是“ArgumentException”,而我只想告诉用户上载jpg图像。不,不会,as
WebServiceException
很可能不会继承
ArgumentException
。因此,您的catch块根本不会被调用。要么更改以捕获
webserviceeexception
并使用
ErrorMessage
,要么捕获
ArgumentException
并使用
Message
属性。您是对的,我刚才已经解决了这个问题。我道歉!