我的方法中有以下代码:
// make the FTP request
var request = (FtpWebRequest)WebRequest.Create(serverUri);
request.KeepAlive = true;
request.Method = WebRequestMethods.Ftp.MakeDirectory;
return (FtpWebResponse)request.GetResponse();
serverUri 是有效的,如果该目录在服务器上不存在,则此方法有效。但是,如果该目录已经存在,System.Net.WebException : The remote server returned an error: (550) File unavailable (e.g., file not found, no access)
则会发生。
为什么我调用request.GetResponse()
而不是设置 FtpWebResponse 对象的 StatusCodeFtpStatusCode.ActionNotTakenFileUnavailable
为 550 时会发生此异常?
我找到有关如何处理异常并从中获取状态代码和描述的信息。但我想知道为什么首先抛出异常,而不是设置响应对象的状态代码并让编码器决定它是否需要异常。