2012-03-09 6 views
-4

Если возвращаемое значение не найдено, когда оно должно быть найдено, я возвращаю исключение.Сценарии для возвращаемых значений

Если значения можно найти не иногда и следовало ожидать, я возвращаю пустой (это позволит избежать предположений о действительных строках при выполнении, если (строки! = «»)

ли эти действительные сценарии возврата для метода, который возвращает строку?

Благодаря

+0

Ну ... делать ли способ, что вы хотите сделать? Если это так, да, это действительно так. – Msonic

+0

Я бы вернул пустую строку, когда это действительно так, что никакое значение не было найдено. Затем вам нужно только проверить длину возвращаемой строки с if (foo.Length> 0). В качестве альтернативы вы можете использовать String.IsNullOrEmpty (foo), чтобы поймать оба значения. Любой из них лучше, чем str! = "". – DOK

+0

Да, я всегда предпочитаю string.IsNullOrEmpty и использую это. – dotnetdev

ответ

1

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

Кроме того, для струнного тестирования я использовал бы string.IsNullOrEmpty

+1

У нас недостаточно информации, чтобы узнать, не является ли найденное значение существенной ошибкой, которая * должна * прекратить обработку (в этом случае исключение является подходящим) или является законной ситуацией (в этом случае это не будет) , –

+0

Конечно, но я бы все же предпочел бы забросить код, который запрашивал возвращаемое значение, а не код, который его извлекает. YMMV. – Cronan

+1

Это зависит от сценария. Здесь нам просто не хватает информации. Если это * всегда * ошибка, зачем принудительно проверять каждого абонента? Вы хотите, чтобы 'File.Open' возвращал' null', если файл не удалось найти? –

0

Это полностью зависит от дизайна вашего приложения, но в (очень) широком смысле, да, эти возвращаемые значения имеют смысл.

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

Смежные вопросы