Почему try-catch не работает с библиотекой phpseclib в Laravel 5.5? - PullRequest
0 голосов
/ 10 сентября 2018

Я работаю над одним проектом, который требует от меня выполнения некоторых команд на удаленном сервере.Я использую Laravel 5.5 с именем пакета "laravelcollective / remote", который использует SSH2 для соединения с удаленным сервером.

Однако у меня возникают некоторые действительно странные проблемы с некоторыми серверами.На некоторых серверах появляется следующее сообщение об ошибке.

production.ERROR: Соединение преждевременно закрыто {"исключение": "[объект] (ErrorException (код: 0): Соединение преждевременно закрыто в /home / username / имя_приложения / public_html / vendor / phpseclib / phpseclib / phpseclib / Net / SSH2.php: 3821, RuntimeException (код: 0): невозможно подключиться к удаленному серверу. at / home / username / application_name / public_html / vendor /laravelcollective / remote / src / Connection.php: 143)

Я использую блок try-catch для перехвата исключений, но я не могу перехватить это исключение. Все другие исключения, такие как connection timed out, перехватываютсяблоком try-catch, кроме этого.

Я использую блок try catch следующим образом:

try {
    $commands = array('sudo apt-get update','sudo apt-get upgrade -y');
    SSH::run($commands);
} catch (\Exception $e){
    report($e);
}

Но блок try-catch перестает работать с этой ошибкой connection closed prematurely. IНе знаете, если я что-то упустил или есть какая-то ошибка в библиотеке, кто-нибудь сталкивался с такой же проблемой раньше? Как я могу правильно отловить эту ошибку?

1 Ответ

0 голосов
/ 10 сентября 2018

это потому, что исключение не выдается, просто ошибка. и ошибка не может быть поймана.

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

Создайте пользовательский обработчик исключений, а затем в провайдере или в вашем public / index.php установите обработчик ошибок

...