抛出最佳实践的例外

时间:2013-11-20 17:04:09

标签: c# exception

定义异常时,对于可能发生的每种类型的错误,您都有单独的异常,或者可以用于多种错误条件的更一般的异常。

例如,假设我有一个处理字符串的类,如果字符串格式不正确,我想抛出异常。

我是否会创建单独的例外,例如:

StringTooLongException,StringContainsIllegalCharactersException,StringTerminationException

或只创建一个例外,例如

StringFormatException

并在异常中指出错误代码的更具体的异常?

2 个答案:

答案 0 :(得分:3)

这取决于。异常的接收者可以根据类型采取任何有用的行动吗?那么是的,拥有不同的类型会很不错。如果他能做的只是向用户显示错误消息,那么不同的.NET类型没有用,如果没有用,就不应该这样做。

答案 1 :(得分:0)

.Net框架中存在许多现有的“通用”异常类型,例如,System.IO.IOException涵盖了许多可能的IO错误,System.Data.SqlClient.SqlException用于报告许多不同类型的Sql错误,所以我想说可以使用更通用的异常类型,最好是已经存在的异常类型(不要重新发明轮子)。