A и B, B возбуждает исключение, только если A является False - это хороший стиль? - PullRequest
0 голосов
/ 27 августа 2009

Канонический пример:

while foo.hasBar() && foo.getBar() != spam
{
     do lots of stuff
}

foo.getBar () вызовет исключение, если у него нет бара Однако гарантируется, что это выражение не будет оцениваться, если у foo нет столбца. Это считается хорошим стилем программирования?

1 Ответ

2 голосов
/ 27 августа 2009

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

С другой стороны, ненужное повторение теста foo.hasBar() в цикле мне кажется очень неуклюжим.

...