2017-01-19 11 views
-2

Моя книга на Java, похоже, предполагает, что in switch statements each case that isn't the default should cover an exceptional condition. В чем смысл этого и почему он рекомендуется? Можете ли вы привести примеры, иллюстрирующие этот момент?Почему каждый случай в инструкции switch, который не является по умолчанию, является исключительным условием?

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

+0

Возможно, что имел в виду автор, если в каждом случае коммутатора есть только одно условие, вы должны использовать структуру if-else, но я не могу быть уверен. –

+1

Невозможно ответить без контекста. –

+0

Добавлено изображение с цитатой. – NTPfun

ответ

1

Я думаю, вы неправильно поняли, что автор написал. Он сказал:

Включение случая по умолчанию фокусирует вас на необходимости обработки исключительных условий.

Что он имел в виду, вы собираетесь добавить все, что вы делаете в корпус коммутатора, а затем добавить значение по умолчанию гарантирует, что вы будете думать обо всех других возможностях. Например, если вы переключились на животных, «кот», «собака», «свинья», ну, что, если пользователь вводит что-то еще? Добавление значения по умолчанию заставляет задуматься об этом и обрабатывать ошибки и исключительные случаи соответственно.

+0

Возможно, я вообще не понял его. Мои первоначальные мысли заключались в том, что это означало, что исключительные условия должны быть охвачены во всех случаях, и все регулярное значение по умолчанию. – NTPfun

+0

Нет, это почти все наоборот: обрабатывайте обычные случаи и добавляйте случай по умолчанию, чтобы заставить себя думать обо всех других (исключительных) случаях - это очень легко забыть, когда у вас что-то в голове, например, «это будет «Y» или «N», обрабатывая другие случаи, которые вы не хотите видеть, едва пересекает ум. –

+1

BTW: отсутствие ключа при включении перечисления может быть полезным, так как оно позволяет вам узнать, было ли добавлено новое перечисление, но для него нет кода обработки. – eckes