2013-06-22 3 views
0

Я смущен про весь блок catch try. Я понимаю, что если выбрано исключение, он выполняет блок catch, однако у меня есть вопрос относительно использования возврата внутри блока try.Понимание try catch block

try { 

    //other logic is here 

    //this is in laravel and sends the user back and should stop operation 
    if (foo != bar) { 
     return Redirect::back()->with_message('This auction is closed.', 'error'); 
    } 
} catch (Exception $e) { 
    return $e->getMessage(); 
} 

Так что мой вопрос: нормально ли закончить операцию внутри блока try? Будет ли я когда-либо сталкиваться с ошибкой, когда возврат игнорируется (или считается исключением?), И код продолжается? Опять же, я очень новичок в этом.

ответ

1

Да, это совершенно правильный способ написать этот код.

Тот случай, когда ваш код будет продолжать работать после того, как управление покидает блок try или catch в PHP 5.5, которая в конце концов была принята finally блок из других языков, и может быть использован для запуска очистки кода, который должен всегда выполнять после того, как try блок делает, независимо от того, выбрано ли исключение.

Но вы, вероятно, не используете 5.5.

1

Да, все в порядке. Если по какой-либо причине Redirect :: back или метод with_message вызовет исключение, вместо этого вы вернете сообщение об ошибке