【发布时间】:2015-03-15 12:42:06
【问题描述】:
我有一个处理异常错误的类,比如
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
所以,我要让班级灵活地不要一直抛出异常。
【问题讨论】:
-
我认为您需要将实际的
throw new fooException代码行包装到if语句中,然后分别。为您现有的条件添加另一个条件——例如if(!$x && THROW_EXCEPTIONS){ …,其中THROW_EXCEPTIONS是一个设置为真或假的常量。 -
到底是什么问题?例如,您可以设置一个静态变量并在决定抛出异常之前对其进行检查。
-
没有问题@jeroen 我知道你可以用 if/else 做任何事情,但如果有另一种方法,我正在徘徊,因为我不熟悉异常类在基础之外的工作方式。跨度>
-
@CBroe 这似乎是个好主意。我必须在命名空间之后定义一个常量,然后默认将其设置为
false,然后在抛出异常之前执行 if/else 进行检查。 -
“因为我不熟悉异常类是如何工作的”——这不是重点; 抛出异常发生在该类的“外部”,这就是您首先要在此处防止的。异常类的内部工作与此无关,只是因为当调用该类时,已经“为时已晚”。为了避免被车撞到,你不需要知道内燃机是如何工作的——你需要让你的 a$$ 远离道路;-)
标签: php oop exception error-handling exception-handling