在 C# 中处理 TimeSpan 异常

Handling TimeSpan Exception in c#

我有下面这些代码行。

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

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

异常消息:

The TimeSpan could not be parsed because at least one of the numeric components is out of range or contains too many digits.

您正在寻找 TimeSpan.TryParseExact 的等价物 returns a 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 对象不能大于它自己的最大值。