M.C*_*.C. 6 .net string exception
无论如何,检查string.format参数是否是有效的参数,如string.TryFormat.
try
{
string.Format(Format, new string[Selectors.Count]); //
}
catch (Exception)
{
return false;
}
Run Code Online (Sandbox Code Playgroud)
我在我的UI中使用这个方法,当捕获异常时它很慢并且很明显,所以我想知道是否有更好的方法可以使用.
我总是可以编写自己的方法,但我想知道是否有预先定义的方法.
无效的字符串格式将类似于此string.Format("格式{0} {1} {2}",新字符串[] {"a","b"})
System.String.TryFormat方法可以工作的唯一方法是捕获可能从各种实现中抛出的任何异常IFormattable.ToString(尽管String.TryFormat可以用错误标志返回替换它自己的一些异常,这样做同时让异常TryFormat逃脱不会很有用).
更糟糕的是,一种TryFormat方法无法知道任何抛出的异常是否IFormattable.ToString可能是不应被捕获的东西.即使IFormattable.ToString合同要求实现不应泄漏除FormatException格式说明符无效之外的任何内容,String.TryFormat如果某些输入对象无效但是尝试格式化它们,则可能希望方法返回false(而不是抛出)如果尝试格式化项目的行为本身导致了腐败,那么任何事情都会变得更糟.不幸的是,异常层次结构的设置方式String.TryFormat,甚至无法开始接近这种语义.
简单地说,String.TryFormat除了使用try/ catchblock来抑制内部方法抛出的异常之外,方法不会做太多.有一个正常的暗示,TryXX假设方法在故障情况下比XX在try-catch块中做的消费者例程更好.如果TryFormat方法只是通过扼杀异常来起作用,那么也可以让消费者处理这种情况.
| 归档时间: |
|
| 查看次数: |
1517 次 |
| 最近记录: |