代码覆盖率告诉我,下面的代码中没有覆盖catch语句。这是旧代码,我不确定为什么要这样写。 如何测试呢?有可能吗?如果主机计算机具有不同的文化设置,是否会发生潜在的异常?或者这是一个错误编码的例子,应该删除 try..catch ?
public string DoSomething(string text)
{
TimeZoneInfo tzi;
try
{
tzi=TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
}
catch
{
tzi=TimeZoneInfo.FindSystemTimeZoneById("US/Eastern");
}
return text + tzi.ToString();
}
文档
,方法
TimeZoneInfo.FindSystemTimeZoneById
可以抛出异常,因此删除catch
子句将进行功能更改,并可能在调用它的许多地方导致不同的行为。所以方法应该保持原样。