Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 捕获自定义异常-我们是否需要要求或包含CustomException类?_Php_Exception_Try Catch - Fatal编程技术网

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

Php 捕获自定义异常-我们是否需要要求或包含CustomException类?,php,exception,try-catch,Php,Exception,Try Catch,要引发异常,我们需要包含CustomException类 include_once("CustomException.class.php"); 嗯 在另一个文件中,当我们使用try/catch块时,是否需要再次要求或包含CustomException类 提前感谢,, MEM否,不需要将其重新包含在try/catch块中。包含文件后,该文件应在脚本的整个处理过程中有效/可用。否,不需要将其重新包含在try/catch块中。一旦包含一个文件,它应该在脚本的整个处理过程中都是有效的/可用的。如果我理

要引发异常,我们需要包含CustomException类

include_once("CustomException.class.php");

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

提前感谢,,
MEM

否,不需要将其重新包含在try/catch块中。包含文件后,该文件应在脚本的整个处理过程中有效/可用。

否,不需要将其重新包含在try/catch块中。一旦包含一个文件,它应该在脚本的整个处理过程中都是有效的/可用的。

如果我理解您正试图正确执行的操作,那么就不是了,因为当您包含包含抛出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,也会在include2中设置$variable_defined_,因为包含include1.php,其中包括include2.php。

如果我理解您试图正确执行的操作,那么就不会,因为当您包含包含引发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,也会在include2中设置$variable_defined_,因为包含include1.php,其中包含include2.php。

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

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

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

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

确切地类型提示从不要求类存在。它只传递对象传递$obj instanceof FooClass的提示,但从解析器的角度来看,FooClass永远不需要存在……谢谢。有了这个额外的评论,我现在明白了。这似乎与类型提示有关。这是一个关键术语。非常感谢。类型提示从不要求类存在。它只传递对象传递$obj instanceof FooClass的提示,但从解析器的角度来看,FooClass永远不需要存在……谢谢。有了这个额外的评论,我现在明白了。这似乎与类型提示有关。这是一个关键术语。谢谢你,我想你没抓住重点。只有在抛出异常时才需要该异常类。所以我读到的OP要问的是,她是否需要包含类,只是为了让catch块中的类型提示起作用。。。如果没有定义Foo类,$obj=newfoo将出现致命错误……明白了,我可能错过了。谢谢你的详细说明。我想你没有抓住要点。只有在抛出异常时才需要该异常类。所以我读到的OP要问的是,她是否需要包含类,只是为了让catch块中的类型提示起作用。。。如果没有定义Foo类,$obj=newfoo将出现致命错误……明白了,我可能错过了。谢谢你的详细说明。