Я использую свою собственную простую обработку ошибок и могу фактически поймать & регистрировать все, что мне нужно. Но теперь мне нужно поймать ошибку с try{}catch(){}
. Ошибка, которую я ожидаю иногда в этом месте, является ошибкой «Вызов неопределенного метода». Я могу поймать его, как это:Как уловить ошибку «Вызов неопределенного метода» в PHP 7?
try {
$someObject->someMethodTheObjectDoesntProvide();
} catch (Error $e) {
// do something else
}
Но Error
класса в предложении catch
является немного к родовому. Я бы хотел поймать только этот тип ошибок.
Есть ли способ ограничить захват определенным «типом» ошибок?
без использования strpos($errorMessage)
...;)
Нет, только разные классы ошибок/исключений; и это всего лишь общий класс «Ошибка» –
. Я не уверен, что '__call()' перехватит вызовы к несуществующим методам (или только к не доступным методам) и позволит вам создать настраиваемое исключение, которое могло бы затем быть пойманным и переданным по-разному другим ошибкам. –
Возможно, вы захотите поймать любую ошибку, которая произошла, а не только конкретную. Но вы могли бы предпринять определенное действие в вашем блоке 'catch' на основе типа ошибки, вызванной – WillardSolutions