Используйте исключения для вещей, которые действительно находятся вне вашего контроля.
Хорошо:
try {
if (fopen('file.txt', 'w') === false) {
throw new Exception('File could not be opened for write access.');
}
} catch (Exception $e) {
echo $e->getMessage();
}
Bad:
try {
if (strlen($_POST['username']) < 5) {
throw new Exception('Username too short');
}
} catch (Exception $e) {
echo $e->getMessage();
}
Первый способ хорош, потому что он происходит, когда пользователь или приложение не могут его контролировать. Он не может открыть файл, потому что? может быть много причин.
Второй способ - это чрезмерное использование try / catch, когда вы должны использовать trigger_error. Второй способ заключается в том, что пользователь не знает правил проверки имени пользователя.
Короче говоря, используйте исключения, когда вы не можете контролировать, что вы тестируете. Помните, что исключения имеют больше накладных расходов, чем trigger_error aswell:)