Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, agat50, Вы писали:
Q>>>>Не уверен. Идеальный пример для local functions — рекурсивные функции.
S>>>За которые в шарпе на сегодня прилетает минус в премию, если они используются без веских на то оснований Ибо платформы разные, а вот StackOverflowException практически везде обрабатывается как corrupted state exception, т.е. пипец котёнку.
A>>Ага, именно, даж поймать где вылетело никак до сих пор. Они это фиксить так и не собираются вроде?
S>С извращениями только. Или стек исключения (если сумели записать), или отладкой memory dump.
S>Меня в своё время это адски и неимоверно раздражало: любая, даже неявная рекурсия — потенциальная точка отказа для всего процесса. Блин.
Ну да, в дебаггере на продакшне очень удобно — иначе стек никак не поймать вроде, в unhandled для appdomain оно не долетает точно. Столкнулся на async void — очень уж понравилось некоторые вещи через рекурсию делать. И через пару недель работы тихая смерть. Хрен кстати вычистишь — решарпер все рекурсии не находит, только пофайлово, графы смотреть в 2012й ещё нельзя да и неявные не найти. Неужели это так сложно — добавить проверку в CLR на оставшийся стек и выбрасывть что-нибудь нормальное. На производительности никак не скажутся пара инструкций.
Причем самому это мониторить тоже нельзя — стектрейсы всех потоков не получить кроссплатформенно.