У меня простой вопрос о дизайне (?).
Я пишу простую программу, в которой есть несколько функций, которые выглядят так.
float foo (float* m,size_t n){
float result;
//do some calculations, for example a sum
return result / n;
}
У меня есть пара вопросов по этому поводу, без намерения возобновить какую-то священную войну.
Должен ли я добавить проверку здравомыслия на n
? Если да, как мне сообщить об этом вызывающему?
Возвращение -1
выглядит странно для чисел с плавающей запятой;
float foo(float *m,size_t n){
if (n == 0) return -1f
...
}
Другой вариант - параметр out
float foo(float *m,size_t n, int *error){
if (n==0){
*error = 1;
return 0f;
}
...
}
update
Это своего рода игрушечная программа, просто пытающаяся попрактиковаться. Вопрос выходит за рамки этого факта. Может быть, мне стоит перефразировать «как обрабатывать ошибки без исключений (ООП)».
Также рассматриваю возможность тестирования n
перед вызовом, но это не очень нравится.
Есть мысли? Заранее спасибо.