Я использую PHP с каркасом CodeIgniter. Я прочитал несколько статей, в которых использование методов try/catch в плохой практике.PHP-приложение, когда использовать try/catch
Я понимаю, использовать протоколирование в развитии, когда может возникнуть потенциальная ошибка, и пусть фактическая ошибка произойдет затем зарегистрировать ее с помощью log_message('level', 'message')
Но когда в развертывании вы хотите, чтобы подавить и обрабатывать любые ошибки, которые возникают. Должен ли я использовать попытаться/поймать блоков, например, в чем-то вроде ...
try {
$this->data['important'] = $this->Test_Model->do_something($data);
if(empty(data['important'])) {
throw new Exception('no data returned');
}
catch (Exception $e) {
//alert the user then kill the process
var_dump($e->getMessage());
}
Я смущен, когда я использую использовать Try/правильно поймать.
Существует несколько случаев, когда вы не хотите подавлять исключения. Это очень интересная классификация исключений Эрика Липперта http://blogs.msdn.com/b/ericlippert/archive/2008/09/10/vexing-exceptions.aspx. –
Выбрасывание исключения в том же блоке кода, что и его обработка, - это плохая практика. Исключения очень полезны для разделения компонентов. 'FormBuilder' выдает исключение,' Action' обрабатывает его. 'EmailValidation' генерирует исключение,' UserModel' обрабатывает его. И т.п.#IMHO – Rudie
Кроме того, исключения очень полезны, когда ваш метод не знает, что делать с проблемой, но некоторые из методов, которые вызвали ваш. Например. если вы не смогли получить некоторые данные из API, будет целесообразно выкинуть исключение и позволить вызывающему методу решить, что делать (например, выполнить сбой или сделать другой вызов). –