问题描述
|
我正在创建一个验证字符串的类。字符串可能无法通过的原因有很多。
抛出异常或返回错误/错误代码是否更有意义?优点缺点?
解决方法
验证程序不应引发异常,因为使验证程序失败不是“例外”事件。
如果其余数据获取了错误的数据,则其余代码应引发异常。
当您运行验证器功能时,您显然已准备好处理通过简单测试检测到的所有问题。将所有内容包装在try / catch块中并仅停止所有执行以尝试恢复是过分的。只需使用和if语句,并准备向用户显示一些错误消息。
,返回
false
。
例外是EXCEPTION,只有在脚本无法继续执行时,才应在例外情况下抛出该异常。
,引发异常似乎有点极端,因为就字符串验证套件而言,未验证字符串并不是真正的例外事件。
因此,我曾认为返回false似乎是最合乎逻辑的解决方案。此外,如果就您的实现而言,这还可以通过引用变量传递有意义的文本错误。
例如:
// In the class definition...
public function validateSTring($stringToValidate,&$errorString=null) {
// If an error occurs...
if($errorString) {
$errorString = \'Something went wrong along the way.\';
return false;
}
}
// When calling...
$errorString = \'\';
$validationSuite->validateString($stringToValidate,$errorString);