У меня (общая) ситуация, когда я в настоящее время возвращаю результат смешанного типа, иногда логический, иногда сообщение об ошибке. Например:
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.
Это кажется грязным, и кто-то однажды сказал, что "хорошо, когда код переходит на единичные, надежные возвращаемые значения", что я считаю хорошим советом. Так что же является лучшей парадигмой для проверки на ошибки?