gpt4 book ai didi

c# - .NET 抛出 WebException 而不是设置 StatusCode

转载 作者:太空宇宙 更新时间:2023-11-03 16:04:11 25 4
gpt4 key购买 nike

我的方法中有以下代码:

// 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:远程服务器返回错误:(550) 文件不可用(例如,找不到文件,无法访问)

为什么当我调用 request.GetResponse() 而不是将 FtpWebResponse 对象的 StatusCode 设置为 FtpStatusCode.ActionNotTakenFileUnavailable(即 550)时会发生此异常?

我查找有关如何处理异常并从中获取状态代码和描述的信息。但我想知道为什么首先抛出异常而不是设置响应对象的状态代码并让编码人员决定是否需要异常。

最佳答案

因为在发出 Http 请求后得到错误代码与语言的异常语义完美匹配。您实际上没有有意义的响应可以返回,并且由于这是“异常(exception)”情况,因此将网络错误转换为 WebException 是有意义的。

关于c# - .NET 抛出 WebException 而不是设置 StatusCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20108596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com