несколько методов, не пропуская другие php - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть этот код:

try{
  firstMethod()
  secondMethod()
}
catch(Exception $e){
  ....
}

Я хочу выполнить все try/catch блочные функции, но захватывая, если выдается исключение, без пропуска следующих методов возможный, но не симпатичный код будет:

try{
  firstMethod();
}
catch(Exception $e){
  ....
}
try{
  secondMethod();
}
catch(Exception $e){
  ....
}

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Почему бы не написать, попробуйте catch в каждой функции и зарегистрируйте исключения где-нибудь.

function firstMethod() {
    try {
        //code
    }
    catch (Exception $e) {
        logException($e);
    }
}

function secondMethod() {
    try {
        //code
    }
    catch (Exception $e) {
        logException($e);
    }
}

function mainMethod() {
    firstMethod();
    secondMethod();
}

Это поможет сделать что-то вроде этого:

function someOtherMethod() {
    secondMethod();
}
0 голосов
/ 21 февраля 2019

Я предполагаю, что у вас может быть много из них, если вы ищете более удобный способ, чем "не очень" взять?

Я бы сказал, просто перебрать их:

foreach ( [ 'firstMethod', 'secondMethod' ] as $callable ) {
    try {
        $callable();
    }
    catch ( Exception $e ) {

    }
}
...