поймать пользовательское исключение - нужно ли нам включать или включать класс CustomException? - PullRequest
1 голос
/ 29 июля 2010

Чтобы вызвать исключение, нам нужно включить класс CustomException.

include_once("CustomException.class.php");

ОК.

В другом файле, когда мы используем блоки try / catch, нужно ли нам снова включать или включать наш класс CustomException?

Заранее спасибо, MEM

Ответы [ 3 ]

3 голосов
/ 29 июля 2010

Если исключение этого класса было сгенерировано, оно уже было включено в этот момент сценария. И если его не бросить, ничего плохого не случится. Подсказка не вызовет ошибок, если не определено такое исключение. Попробуйте запустить этот код:

try {
 echo 'foo';
} catch (SomeNonExistentException $e) {
 echo 'bar';
}
echo 'baz';
2 голосов
/ 29 июля 2010

Нет, вам не нужно повторно включать его в блоки try / catch. После включения файла он должен быть действительным / доступным для всей обработки сценария.

1 голос
/ 29 июля 2010

Если я понимаю, что вы пытаетесь сделать правильно, тогда нет , потому что, когда вы включаете файл с классом, который выбрасывает 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.

...