У меня есть скрипт, который сбрасывает старый HTML-код. Это делает около 1000 страниц в день, и каждый так часто душит по какой-то причине и подбрасывает следующее сообщение об ошибке:Невозможно поймать «захватывающую фатальную ошибку» из QueryPath
PHP Catchable fatal error: Argument 1 passed to DOMXPath::__construct() must be an instance of DOMDocument, null given, called in /var/scraper/autotrader/inc/QueryPath/QueryPath/CSS/DOMTraverser.php on line 417 and defined in /var/scraper/autotrader/inc/QueryPath/QueryPath/CSS/DOMTraverser.php on line 467
Сначала я подумал, что это ошибка генерируется, когда htmlqp ($ HTML) был вызван, но я завернул его в попытку {} заявление и оно не поймать что-нибудь:
UPDATE:
Я нашел обижая строку кода с помощью @, чтобы увидеть, когда скрипт будет завершать без ошибок. Именно эта линия:
try {
$items = $html->find('.searchResultHeader')->find('.vehTitle'); //this one
} catch (Exception $e) {
var_dump(get_class($e));
echo 'big dump'.$e->getTraceAsString();
}
Когда это бомбы, оно даже и не эхо «большой дамп», так что это на самом деле, кажется, не будет ловить его.
Мне интересно, может ли это быть причиной ошибки обработки ошибок QueryPath, а не моей?
Может ли кто-нибудь дать представление о том, почему это не ловит? – James
Я не знаю, нужен ли он кому-то еще, кому нужно решение, запрошенное на chekc http://stackoverflow.com/questions/2468487/how-can-i-catch-a-catchable-fatal-error-on- PHP-типа намекая –