gpt4 book ai didi

c# - 为什么不是到处都是 "Try"方法?

转载 作者:行者123 更新时间:2023-11-30 13:12:50 29 4
gpt4 key购买 nike

<分区>

我想知道,为什么 Microsoft 开发人员不为我们提供到处都是“尝试”版本的不可靠方法?

如果我使用数据库连接或 smtp 客户端,我总是必须考虑异常(exception)情况:

try
{
smtpClient.Send(message);
}
catch (SmtpException)
{
// test with real smtp server and analyze an exception and it's contents here
}

但作为用户我想要的是:

if(!smtpClient.TrySend(message, out reason))
{
// analyze reason here
}

对我来说最大的问题是异常性能开销。我无法承受在每次调用我的服务时抛出异常。如果我需要检查数十个连接/提供者,这可能会导致每个客户端请求出现数十个异常。

我的问题是:.NET 中此类 API 设计决策背后的基本原理是什么?我不认为这是一个错误,因为它无处不在,而不是在单一技术中。

更新我必须再举一个 .NET 异常的例子来停止谈论网络延迟。例如,如果 Windows 服务停止,System.Diagnostics.EventLog.WriteEntry 方法可以抛出 System.ComponentModel.Win32Exception

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