【问题标题】:Handling TimeSpan Exception in c#在 C# 中处理 TimeSpan 异常
【发布时间】:2015-12-03 09:38:09
【问题描述】:

我有以下这些代码行。

if (TimeSpan.ParseExact((VSFlexShift.get_TextMatrix(VSFlexShift.Row, 2)), @"hh\:mm\:ss", CultureInfo.InvariantCulture) > TimeSpan.MaxValue)

我写它是为了检查最终用户是否将时间键入为12:68:56 一些类似的东西应该return;。 但是现在发生的是代码直接捕获Exception。有什么办法可以让我只在循环内处理它而不是去Catch(Exception ex)

异常消息:

无法解析 TimeSpan,因为至少有一个数字 组件超出范围或包含太多数字。

【问题讨论】:

  • 您可以使用TimeSpan.TryParseTimeSpan.TryParseExact 方法来检查您的输入是否有效。

标签: datetime exception c#-2.0 timespan


【解决方案1】:

您正在寻找等效的 TimeSpan.TryParseExact,它返回 bool 而不是抛出异常:

TimeSpan timeSpan;
if (!TimeSpan.TryParseExact(VSFlexShift.get_TextMatrix(VSFlexShift.Row, 2),
    @"hh\:mm\:ss", CultureInfo.InvariantCulture, out timeSpan))
{
    // TimeSpan isn't valid.
}

关于> TimeSpan.MaxValue,我不确定您为什么要检查,但TimeSpan 对象不能大于它自己的最大值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 2011-04-27
    • 2011-09-11
    • 1970-01-01
    相关资源
    最近更新 更多