c# - TryCatch 与 TryParse 的优缺点

标签 c# .net tryparse try-catch

使用以下任一方法从对象中提取替身的优缺点是什么?除了个人喜好之外,我正在寻求反馈的问题还包括易于调试、性能、可维护性等。

public static double GetDouble(object input, double defaultVal)
{
    try
    {
        return Convert.ToDouble(input);
     }
     catch
     {
        return defaultVal;
     }
}

public static double GetDouble(object input, double defaultVal)
{
    double returnVal;
    if (double.TryParse(input.ToString(), out returnVal))
    {
        return returnVal;
    }
else
    {
        return defaultVal;
    }
}

最佳答案

  • TryParse 会比捕获异常更快
  • TryParse 指示某些预期 - 这里没有发生异常,只是您怀疑您的数据可能无效。
  • TryParse 没有对正常控制流使用异常处理

基本上,使用 TryParse :)

顺便说一下,您的代码可以重写为:

public static double GetDouble(object input, double defaultVal)
{
    double parsed;
    return double.TryParse(input.ToString(), out parsed)) ? parsed : defaultVal;
}

关于c# - TryCatch 与 TryParse 的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2431836/

相关文章:

c# - 为什么在关闭表单之前调用 FormDeactivate?

.net - 我怎样才能让我们最先进的文本转语音变得简单?

c# - DateTime.TryParse世纪控件C#

c# - 条件变量的 TPL 等价物是什么?

c# - 什么更好 : int. TryParse 或 try { int.Parse() } catch

c# - int.TryParse = null 如果不是数字?

c# - 如何在 C# 中将 Dictionary<string, object> 转换为 Dictionary<string, string>

c# - 在 asp.net 应用程序中将今天的日期存储为静态值有什么缺点吗?

c# - Bootstrap 开关高度在回发后自动改变

c# - 在.net中使用正则表达式匹配两个单词的正确模式