Здравствуйте, amx3000, Вы писали:
A>Здравствуйте, meowth, Вы писали:
A>Ага. Просто в один прекрасный момент, через пару лет развития программы, вдруг все начнет адски тормозить и жрать память, не падая. И кому-то придется, тихонько матерясь на толковых предшественников, исправлять все возвраты Stream.Null на нормальный выброс и обработку исключений.
A>Или, что еще хуже, — не вдруг, а просто все будет работать медленно. Не критически медленно, чтобы пользователи забили тревогу, а так, вызывая небольшое раздражение. Просто потому что сэкономили на обработке исключений в одном месте, в другом, в десятом... Ничего не валится же, значит все ок.
A>Извините за лирику, это у меня сейчас личное прорвалось
Лирику понимаю, сам такой — могу вам страшных историй понарассказывать

Ну таки я ж не призываю этим заменять exceptions или экономить на них. Если есть исключительная ситуация — однозначно бросать эксепшен. А Stream.Null возвращать (или передавать, например), только если это логически оправданно, а не как сигнал об ошибке; и соображения производительности здесь не стоит вообще учитывать.Как пример юзкейса — метод, который делает что-то и еще что-то пишет в поток (журнала, например). Если мы хотим это проигнорировать, то передаем Stream.Null, и все.
P.S. То же самое относится адресую и предыдущему комментатору