Декларация переменных и проверка ошибок: что входит в первую очередь?
При написании функции у меня всегда возникает такая путаница, нужно ли сначала проверять ошибки и объявлять переменные позже (или) назначать параметры локальным переменным, а затем проверять наличие ошибок. Какой из следующих способов является предпочтительным и почему? Я обычно придерживаюсь первого типа.
void DoSomething1(Object x, Object y){
// All sort of error checking goes here
if IsError(x) return;
if IsError(y) return;
// Variable declaration
int i,j;
Object z = x;
}
void DoSomething2(Object x, Object y){
// Variable declaration
int i,j;
Object z = x;
// All sort of error checking goes here
if IsError(z) return;
if IsError(y) return;
}
Ответы
Ответ 1
Вам следует следовать правилу близости и объявлять переменные как можно позже. Это локализует их создание и использование. Вы должны также проверить параметры на достоверность при первой возможности, чтобы минимизировать выполненную работу.
Поэтому я согласен, что ваш первый лучше, но он субъективен. Там, возможно, аргументы для другого подхода, но я еще не слышал убедительных, поэтому я рассматриваю эти два руководства как наилучшую практику.
Поскольку вы заявляете "агностик языка", несмотря на то, что ваш код выглядит как-то странно знакомым:-), почти наверняка есть некоторые языки, на которых вы не получаете выбора, а переменные должны быть объявлены вверху.
Ответ 2
Объявлять переменные, когда они вам нужны, обычно, когда какой-либо промежуточный результат готов или когда вы собираетесь ввести цикл.
Таким образом, это подразумевает, что проверки ошибок часто появляются перед объявлениями.