Я пытаюсь передать исключение из определенного блока catch в более общий блок catch. Однако он не работает. Я получаю ошибку сервера 500, когда я пытаюсь сделать следующее. Возможно ли это?
Я понимаю, что есть легкие обходные пути, но не так ли нормально говорить: «Эй, я не чувствую, что имею дело с этой ошибкой, давайте обходим более общий обработчик исключений!»
try { //some soap stuff } catch (SoapFault $sf) { throw new Exception('Soap Fault'); } catch (Exception $e) { echo $e->getMessage(); }
Технически это то, что вы ищете:
try { try { //some soap stuff } catch (SoapFault $sf) { throw new Exception('Soap Fault'); } } catch (Exception $e) { echo $e->getMessage(); }
однако я согласен с тем, что исключения не должны использоваться для контроля потока. Лучше всего было бы так:
function show_error($message) { echo "Error: $message\n"; } try { //some soap stuff } catch (SoapFault $sf) { show_error('Soap Fault'); } catch (Exception $e) { show_error($e->getMessage()); }