PHP изначально не поддерживает перехват ошибок, как это делает Python, если вы не переопределите поведение по умолчанию и не установите свой собственный обработчик ошибок .PHP * try
- catch
был добавлен к языку только недавно в версии 5, и он может явно ловить только те исключения, которые вы указали throw
.
Таким образом, в сущности, PHP различает ошибки и исключения.Ошибки не были модульными и не были доступны пользователю, как это было в Python.Я полагаю, что это связано с тем фактом, что PHP начинался как коллекция динамических веб-скриптов , со временем развивался и набирал больше функций, и лишь недавно предложили улучшенную поддержку ООП (т. Е. Версию 5);в то время как Python в основном поддерживает ООП и другую мета-функциональность.И обработка исключений с начала .
Вот пример использования (опять же, throw
необходимо, иначе ничего не будет поймано):
function oops($a)
{
if (!$a) {
throw new Exception('empty variable');
}
return "oops, $a";
}
try {
print oops($b);
} catch (Exception $e) {
print "Error occurred: " . $e->getMessage();
}