【发布时间】:2013-11-20 17:04:08
【问题描述】:
在定义异常时,您应该为可能发生的每种错误类型或可用于多种错误情况的更一般的异常设置单独的异常。
例如,假设我有一个处理字符串的类,如果字符串格式不正确,我想抛出异常。
我会创建单独的异常,例如:
StringTooLongException、StringContainsIllegalCharactersException、StringTerminationException
或者只创建一个异常,例如
字符串格式异常
并在异常中使用错误代码指示更具体的异常?
【问题讨论】:
-
如果可能,我会尽量坚持框架提供的异常。例如,在你的具体例子中,我会使用这个:System.FormatException.
-
最佳实践是尽可能使用与您的异常最接近的现有异常类型。如果您必须偏离,则创建异常是特定的,但不是那么具体,以至于开发人员需要捕获一千个异常。记住例外是昂贵的!所以他们应该是例外。