Все зависит от того, что вы делаете.Лично я использую их все время, так что мне не нужно проверять возвращаемое значение (глупый, но показательный пример):
function ArrayToObject(array $array) {
$obj = new StdClass();
foreach ($array as $key => $value) {
if (!is_string($key)) {
throw new Exception('Expects only string keys in the array');
}
$obj->$key = $value;
}
return $obj;
}
Таким образом, я могу сделать:
$array = array('foo' => 'bar');
try {
echo ArrayToObject($array)->foo; //Prints "bar"
} catch (Exception $e) {
//Handle error here
}
Это позволяет вам не беспокоиться об ошибках проверки ваших результатов.Вы можете обрабатывать ошибки прямо в блоке catch.
Так что нет, не изменяйте то, что вы собираетесь возвращать, основываясь на исключениях ... Пусть исключения обрабатывают ошибки и измененный рабочий процесс для вас...
Более реальный пример (в псевдокоде):
try {
open database connection;
send query to database;
operate on results;
} catch (DatabaseConnectionException $e) {
handle failed connection here;
} catch (DatabaseQueryException $e) {
handle failed query here;
} catch (Exception $e) {
handle any other errors here;
}
Очевидно, это предполагает, что функции / методы вашей базы данных выдают эти исключения ...