gpt4 book ai didi

c# - 异常 : When to use, 时序,整体使用

转载 作者:太空宇宙 更新时间:2023-11-03 17:45:05 28 4
gpt4 key购买 nike

我会试着问我的问题,这样它就不会以一个简单的争论话题结束。

我最近进入了一个用 C# 编码的应用程序,我正在发现异常机制。我和他们有过一些不好的经历,比如以下

// _sValue is a string
try
{
return float.Parse(_sValue);
}
catch
{
return 0;
}

我把它改成:
float l_fParsedValue = 0.0f;
if (float.TryParse(_sValue, out l_fParsedValue))
{
return l_fParsedValue;
}
else
{
return 0;
}

结果,我在 Visual Studio 中的输出不再充斥着类似的消息

First chance System.FormatException blabla



当像'-'这样的字符串到达​​片段时。我认为使用第二个片段更清洁。

更进一步,我经常看到异常经常被使用,类似:“我在这个 try-catch 中做任何我想做的事情,如果出现任何问题,catch。”。

现在,为了不陷入错误的误解,我希望你们能帮助我清楚地定义如何/何时使用这些异常(exception),以及何时坚持使用老派的“if...else”。

在此先感谢您的帮助!

最佳答案

在特殊情况下应该抛出异常。即当意外发生时。如果您希望函数定期抛出异常,那很可能是糟糕的设计。

在您的示例中,很明显 TryParse更好,因为异常似乎经常发生。

但是例如在解析文件时,我希望它几乎总是有效的。所以我一般用Parse并捕获异常并生成 InvalidDataException将捕获的异常作为内部异常。通常会大大简化解析代码,即使它可能是糟糕的风格。

我推荐 Eric Lippers 的博客文章:Vexing exceptions

关于c# - 异常 : When to use, 时序,整体使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6184676/

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