假设我创建并执行一个System.Net.FtpWebRequest
.
我可以用catch (WebException ex) {}
捕获此请求引发的任何与 Web 相关的异常。但是,如果我有一些逻辑只想在由于以下原因引发异常时执行:(550) file not found
?
最好的方法是什么?我可以复制异常消息并测试是否相等:
const string fileNotFoundExceptionMessage =
"The remote server returned an error: (550) File unavailable (e.g., file not found, no access).";
if (ex.Message == fileNotFoundExceptionMessage) {
但从理论上讲,这一信息似乎可能会在未来发生变化。
或者,我可以测试一下异常消息是否包含“550”。如果消息发生更改,此方法可能更有效(文本中的某处可能仍包含“550”)。但当然,如果其他一些文本的文本,这样的测试也会返回 trueWebException
只是恰好包含“550”。
似乎没有一种方法可以仅访问number的异常。这可能吗?
WebException
暴露了一个StatusCode http://msdn.microsoft.com/en-us/library/system.net.webexception.status.aspx您可以检查的财产。
如果你想要实际的 HTTP 响应代码,你可以这样做:
(int)((HttpWebResponse)ex.Response).StatusCode
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)