gpt4 book ai didi

C# 尝试{} 捕捉{}

转载 作者:可可西里 更新时间:2023-11-01 08:50:26 27 4
gpt4 key购买 nike

您好,感谢阅读。我是编程、C# 和套接字编程方面的新手。在我的代码中,我尝试发现问题以在我的应用程序中提供容错能力。以下内容:

        catch (ArgumentNullException e)
{
OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
OnUpdateNetworkStatusMessage(this, eventArgs);
}
catch (EncoderFallbackException e)
{
OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
OnUpdateNetworkStatusMessage(this, eventArgs);
}
catch (SocketException e)
{
OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
OnUpdateNetworkStatusMessage(this, eventArgs);
}
catch (ArgumentOutOfRangeException e)
{
OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
OnUpdateNetworkStatusMessage(this, eventArgs);
}
catch (ObjectDisposedException e)
{
OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
OnUpdateNetworkStatusMessage(this, eventArgs);
}

我只是想知道我是否可以用一个单一的代码替换这个重复的代码:

catch (Exception e) { handle here}

这行得通吗?

再次感谢。

最佳答案

不,永远不要捕获 System.Exception。我今天感觉像是打破了记录,但我真的不能太强调这一点。您无法处理 OutOfMemoryExceptionAccessViolationException,所以不要捕获它!

至于示例代码,我非常怀疑 ArgumentNullExceptionArgumentOutOfRange 异常是否与网络错误相对应。如果是,则可能意味着真正应该捕获此异常的组件不是。

“容错”并不意味着“吃掉每一个异常,这样应用程序就不会崩溃”——它意味着实际上知道可能出错的事情并正确处理它们。

关于C# 尝试{} 捕捉{},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2110436/

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