多种方法尝试不跳过其他PHP

时间:2019-02-21 08:13:53

标签: php exception try-catch

我有此代码:

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

我要执行的是所有try/catch块函数,但是要捕获是否抛出异常,而不跳过以下方法 可能但不太漂亮的代码是:

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

2 个答案:

答案 0 :(得分:4)

如果您正在寻找比“不漂亮”的方法更方便的方法,我假设您可能有很多?

我想说说遍他们:

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

    }
}

答案 1 :(得分:2)

为什么不编写try 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();
}