我有一个处理异常错误的类,比如
class fooException extends Exception{}
class foo {
public function bar($x){
if(!$x){
throw new fooException ("x can not be false value");
}
}
}
现在,我正在尝试做的是允许类的用户做出是否应该抛出异常的选择,或者不像PDO类那样。
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
所以,我要为课程提供灵活性,不要一直抛出异常。
答案 0 :(得分:1)
您可以更好地扩展例外
class MyException extends Exception
{
static public $enable = true;
public function __construct($message = null, $code = 0)
{
if (self::$enable) {
parent::__construct($message, $code);
}
}
}
你可以打电话
throw new MyException("x can not be false value");
MyException::enable = false; //for disable
注意这是非常基本的实现,你有办法以某种方式处理错误状态。
另一个更好的解决方案是使用ExceptionHandler
class ExceptionHanlder
{
static public $enable = true;
function __construct($message = null,$code = null) {
if (self::$enable) {
throw new Exception($message,$code);
}
}
}
ExceptionHandler::$enable = false;
new ExceptionHandler('test');