Как наилучшим образом обрабатывать исключение в конструкции?Как лучше обрабатывать исключения в конструкторе?
option1 - поймать исключение, где создан объект:
class Account {
function __construct($id){
if(empty($id)){
throw new My_Exception('id can\'t be empty');
}
// ...
}
}
class a1 {
function just($id){
try {
$account = new Account($id);
}
catch(Exception $e){
$e->getMessage();
}
}
class a2{
function just($id){
try {
$account = new Account($id);
}
catch(Exception $e){
$e->getMessage();
}
}
option2: поймать исключение внутри __construct
class Account{
function __construct($id){
try{
if(empty($id)){
throw new My_Exception('id can\'t be empty');
}
// ...
}
catch(My_Exception $e) {
}
}
Пожалуйста, напишите, в каких случаях следует использовать ОПЦИЯ1 и в котором должны быть использовали опцию2 или другое лучшее решение.
Благодаря
Я не голосуя, чтобы закрыть, потому что я не уверен, что все детали вашего конкретного вопроса, но здесь очень тесно связан один: HTTP : //stackoverflow.com/questions/2685857/php-exceptions-in-classes (мне лично нравится альтернативный метод @Gordon представляет в своем ответе использование ':: create()' best) –
спасибо отличная ссылка! – Yosef