【问题标题】:try-catch-finally formatexceptiontry-catch-finally 格式异常
【发布时间】:2013-04-12 09:29:16
【问题描述】:

我正在尝试通过将文本框转换为 DateTime 格式来捕获输入数据

string yy = string.Format("{0:T}", textBox1.Text);

我希望使用Try-Catch-Finally 产生Systm.FormatException 错误并将其显示在另一个文本框中

try 
{
 DateTime XF = Convert.ToDateTime(yy); 
}
 catch (FormatException)    
       { 
       textBox5.Text = "incorrect time"; 
       }
   finally 
          {
           DateTime XF = Convert.ToDateTime(yy); 
           textBox5.Text = Convert.ToString(XF.Hour + XF.Minute + XF.Second); 
          }

我应该怎么走?

谢谢

【问题讨论】:

    标签: c# datetime try-catch-finally


    【解决方案1】:

    与其使用异常来执行此操作,不如使用DateTime.TryParse。这将返回一个简单的truefalse(如果它可以转换为日期)。

    http://msdn.microsoft.com/en-us/library/ch92fbc1.aspx

    DateTime xf;
    bool canBeConverted = DateTime.TryParse(yy, out xf);
    if (!canBeConverted) { textBox5.Text = "incorrect time"; }
    

    【讨论】:

    • 我怀疑它是否真的吞下了任何异常。使用 ILSpy,我发现 no 异常在 TryParse 函数或其调用函数中被捕获。
    • @UweKeim 你说得对,TryParse 的重点是不抛出异常。
    【解决方案2】:

    如果您不确定格式是否正确,您应该使用DateTime.TryParse()DateTime.TryParseExact()。不需要例外,它们很慢而且不太清楚。

    string dateString;
    DateTime result;
    if (DateTime.TryParse(dateString, result))
    {
        // it's a recognized as a DateTime
    }
    else
    {
        // it's not recognized as a DateTime
    }
    

    【讨论】:

      【解决方案3】:

      您可以考虑使用DateTime.TryParseExact or DateTime.TryParse Method

      例如:

          string dateString = "Mon 16 Jun 8:30 AM 2008";
      string format = "ddd dd MMM h:mm tt yyyy";
      DateTime dateTime;
      if (DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
          DateTimeStyles.None, out dateTime))
      {
          textBox5.Text = "correct time";
      }
          else
            textBox5.Text = "incorrect time";
      

      【讨论】:

        【解决方案4】:

        尝试使用DateTime.TryParse() 方法。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-05-26
          • 2011-05-17
          • 1970-01-01
          • 1970-01-01
          • 2011-03-28
          • 2019-01-07
          • 1970-01-01
          相关资源
          最近更新 更多