Модель должна иметь возможность генерировать исключение.
Вот как может выглядеть ваша модель:
class Model{
public function find($id){
$result = //do stuff to find by id
if (!isset($result)){
throw new Exception("No result was found for id:$id");
}
return $result
}
}
Тогда вы бы использовали свой блок try / catch:
try{
$id = Model()->find('id=1')->id;
}catch(Exception $e){
echo 'failed';
}
Однако исключения должны создаваться только при «исключительных» обстоятельствах. Я не думаю, что использование исключений для управления потоком программ - это правильный путь.
Сказав, что если возврат NULL при попытке получить свойство ID является исключительной ситуацией, то исключения, безусловно, подходят.