C # / Java исключения против условных операторов - PullRequest
0 голосов
/ 02 ноября 2011

Несмотря на то, что я читаю много статей (некоторые на этой доске), я все еще ломаю голову, размышляя, когда будет подходящее время для использования исключения.Я не вижу многих методов, возвращающих коды ошибок в API платформы, но некоторые люди все еще настаивают на том, что исключения должны использоваться только для исключительных событий, которые требуют, чтобы поток управления выполнялся специально.Я использую исключения для обработки общих условных утверждений в моих программах.Это плохая практика?Или я должен использовать старый метод возврата кода ошибки для общих сбоев?

1 Ответ

4 голосов
/ 02 ноября 2011

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

Да, используйте вместо этого проверку.

Или я должен использовать старый метод возврата кода ошибки для общих сбоев?

Нет, вместо этого используйте исключение.

Итак, это должно быть (просто говоря)

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;
    }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...