метод возвращает код ошибки или как это лучше всего сделать - PullRequest
0 голосов
/ 22 марта 2011

У меня есть такой класс:

class myclass {
    public function save($params){
        // some operations 
        // posible error
        return false;
        // some more code
        // posible error
        return false;
        // more code
        // if everything is ok
        return true;
    }
}

но что является лучшим способом отображения ошибок, одна идея состоит в том, чтобы заставить класс возвращать числа, например:

public function save($params) {
    // some operations
    // some error with the db
    return 1;
    // more code
    // some error with a table
    retunr 2;
    // more code
    // if everything is ok
    return 0;
}

и при вызове этой функции сделайте переключатель, чтобы отобразить ошибки:

$obj = new myclass();
$err = $obj->save($params);
switch($err) {
    case 1: echo 'error with the db'; break;
    case 2: echo 'error with some table'; break;
    default: echo 'object saved!';
}

это лучший способ написать это? или есть другой способ?

1 Ответ

2 голосов
/ 22 марта 2011

Многие языки программирования дают вам возможность генерировать и ловить исключения.Там, где это возможно, это, как правило, лучшая модель обработки ошибок.

public function save($params) throws SomeException {
    // some operations 
    if (posible error) 
       throw new SomeException("reason");
}


// client code
try {
  save(params);
} catch (SomeException e)  {
  // log, recover, abort, ...
}

Другое преимущество исключений состоит в том, что они (по крайней мере, в некоторых языках) предоставляют вам доступ к трассировке стека, а также к сообщениям.

...