У меня есть сценарий, который подключается к стороннему API. Он работает и должен работать на непрерывном цикле 24/7 (я использую спать в конце перед перезапуском цикла).
Проблема в том, что иногда сторонний API получает ddosed или соединение просто падает с этой ошибкой:
Неустранимая ошибка: исключить исключение «GuzzleHttp \ Ring \ Exception \ ConnectException» с сообщением «ошибка cURL 7: не удалось подключиться к порту xxx.com 443
Есть ли способ «сломать» эту фатальную ошибку, чтобы убедиться, что код перезагружен и продолжит работу, если действие может быть выполнено, или я должен вручную перезагружаться каждый раз, когда получаю эту ошибку?
Из комментария Майкла
похоже, вы можете просто поймать исключение GuzzleHttp \ Ring \ Exception \ ConnectException
как это:
use GuzzleHttp\Ring\Exception\ConnectException; try { // the code which throws the error } catch( ConnectException $ex ) { switch ( $ex->getMessage() ) { case '7': // to be verified // handle your exception in the way you want, // maybe with a graceful fallback break; } }
похоже, ConnectException guzzle расширяет некоторые классы и, в конечном счете, расширяет исключение php, поэтому вы можете безопасно использовать метод getCode (), позволяющий поймать идентификатор, на котором вы можете реагировать в соответствии с вашими потребностями.