Терминология условного возврата Java - PullRequest
1 голос
/ 03 ноября 2011

Java, кажется, проводит различие в своей терминологии между «ошибками», «утверждениями» и «исключениями». Однако не существует определенной терминологии (которую я вижу) для условной проверки и возврата при неудаче (которую до этого момента я называл «проверкой на ошибки»).

public int doSomething(int val) {
    if(val < 0) return -1;
    ...
    return 0;
}

В этом примере (хотя и бессмысленно) метод возвращает ошибку, если val отрицательно, в качестве метода «проверки ошибок». Тем не менее, Java определенно определяет ошибки, такие как RuntimeException (аппаратный сбой и т. Д.). Так о чем я говорю?

Ответы [ 4 ]

1 голос
/ 03 ноября 2011

Исключения составляют исключительные условия;вещи, которые вы не ожидаете (но возможны).Джош Блох конкретно описывает это в своей книге «Эффективная Java».

Вы найдете, что многие методы класса в java возвращают true / false (булево) в качестве индикатора успеха / неудачи , когда неудачаобщее и ожидаемое состояние .

С учетом сказанного, это никогда не было так просто.В стандартных java-классах определенно есть вещи, которые генерируют исключения для общих условий и т. Д. В целом, первая строка этого ответа - как я подхожу к своему собственному коду.

0 голосов
/ 03 ноября 2011

Чтобы ответить на этот вопрос, я бы сослался на схему, описанную в книге «Рефакторинг». (http://refactoring.com/catalog/consolidateConditionalExpression.html)

Программирование, которое я изучил, лучше всего достигается, когда ваш код отражает ваш мыслительный процесс и читает именно так, как вы хотели бы думать о решении вашей проблемы.

Я бы перефразировал ваш код как

public void doSomething(int val) {
    if isValueInvalid(val) return ;
    ... // do something
    // returns should be modelled only if the client of this 
// program is expecting to use the results of this doSomething(..) for taking some action. 
}
0 голосов
/ 03 ноября 2011

Я думаю, вы можете назвать это return code, так же как и exit status процесса в целом, код возврата, на мой взгляд, может также применяться к методам.

0 голосов
/ 03 ноября 2011

Я только немного тебя понял. что вы хотите вернуть некоторые вернуть ошибку, когда ваше условие не удается ...
Для этого в Java две вещи 1. Исключение 2. Ошибка
так что для этого вы можете вернуть исключение или ошибку, когда ваше условие истинно ..
Или throw custom Exception ...

...