捕获自定义异常 - 我们是否需要要求或包含CustomException类?

时间:2010-07-29 14:01:50

标签: php exception try-catch

要抛出异常,我们需要包含一个CustomException类。

include_once("CustomException.class.php");

确定。

在另一个文件中,当我们使用try / catch块时,我们是否需要再次要求或包含我们的CustomException类?

提前致谢, MEM

3 个答案:

答案 0 :(得分:3)

如果抛出了这个类的异常,那么它已经包含在脚本的这一点上。如果它没有抛出,没有什么不好的事情发生。如果没有定义此类异常,则typehint不会引发任何错误。尝试运行此代码:

try {
 echo 'foo';
} catch (SomeNonExistentException $e) {
 echo 'bar';
}
echo 'baz';

答案 1 :(得分:2)

不,您不需要在try / catch块中重新包含它。一旦包含文件,它应该对整个脚本处理有效/可用。

答案 2 :(得分:1)

如果我理解您正在尝试正确执行的操作,那么,因为当您包含具有抛出CustomException的类的文件时,它将包含CustomException类


考虑以下情况,我们有一个包含文件(包含文件本身)的主文件:

main.php:

include("include1.php");
var_dump($variable_defined_in_include2);

include1.php:

include("include2.php");

include2.php:

$variable_defined_in_include2 = true;

即使main.php不包含include2.php,也会设置$variable_defined_in_include2,因为包含了include1.php,其中包括include2.php。