我正在C#中编写一个应用程序,它要求我从用户传入的某个维度创建一个Array
对象。Array.CreateInstance()
方法可以抛出(通过上次计数)6个不同的异常,我想处理。对于每个例外情况,我都希望通过简单的MessageBox.Show()
通知用户并为特殊情况量身定制一条消息。我不想做的是抓住一般的Exception
类型,因为不这样做是最佳做法。我会尝试捕捉ArgumentException
或更具体的东西,但除了所有例外的唯一常见超类是Exception
。高效的异常处理技术
底线:我想找出最好的方法来处理有这么多不同的例外,什么将是一个有效的,更重要的是,可维护的解决方案。
try
{
data = Array.CreateInstance(TypeHelper.StringToType(cbDataType.SelectedItem.ToString()), dimensions);
}
catch (OutOfMemoryException) { }
catch (NullReferenceException) { }
catch (NotSupportedException) { }
catch (ArgumentNullException) { }
catch (ArgumentOutOfRangeException) { }
catch (ArgumentException) { }
+1参数例外是使用例外,不应被捕获;用户必须由主叫方保证。如果您使用代码合约来声明和执行使用约束,默认情况下,它将引发无法捕获的ContractException,这是进一步不捕获使用异常的原因,因为该模式在所有情况下都不起作用。 – 2010-07-07 18:26:42