Альтернатива возвращению смешанных ошибок и логических значений - PullRequest
4 голосов
/ 07 декабря 2009

У меня (общая) ситуация, когда я в настоящее время возвращаю результат смешанного типа, иногда логический, иногда сообщение об ошибке. Например:

function checked_thing_is_legal(){
 // Do stuff and check for errors in here.
} // Returns true if there are no errors, otherwise returns an error message string.

Это кажется грязным, и кто-то однажды сказал, что "хорошо, когда код переходит на единичные, надежные возвращаемые значения", что я считаю хорошим советом. Так что же является лучшей парадигмой для проверки на ошибки?

Ответы [ 3 ]

5 голосов
/ 07 декабря 2009

здесь я вижу два варианта

использовать атомарные (логические) валидаторы и отделить сообщения об ошибках от самого валидатора

   if(!is_valid_email(blah)) print "invalid email";

использовать объекты валидатора с логическими функциями test () и string error ():

$v = new SomeValidator;
if(!$v->test(blah))
  echo $v->error();

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

 $err = validate_email(blah);
 if(empty($err)) ok else print $err;
1 голос
/ 07 декабря 2009

Исключения PHP будет одним из классических способов сделать это ...

0 голосов
/ 07 декабря 2009

У вас есть следующие возможности:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...