Я использую исключения для обработки общих условных утверждений в моих программах.Это плохая практика?
Да, используйте вместо этого проверку.
Или я должен использовать старый метод возврата кода ошибки для общих сбоев?
Нет, вместо этого используйте исключение.
Итак, это должно быть (просто говоря)
if( isValidIndex() ) { // <-- Validation : GOOD
return array.atPosition( x );
}
Вместо:
try {
doSomethingHazzarous();
} catch( ArrayIndexOutOfBoundsException aioobe ) {}
И это должно быть:
void somethingStreange() throws IllegalStateException {
somethingsWrongWithTheState();
}
Вместо:
void somethingStranger() {
int code = somethingsWrongWithTheState(); // <-- Error code: BAD
if ( code == SomeClass.ILLEGAL_STATE ) {
internalFlag = SomeOther.SOME_STATE;
return;
}
}