А можно уточнить, какой вопрос мы обсуждаем?
Оффтоп
Я к нему вообще не обращался, а среагировал на его неуместное ёрничание в свой адрес, которое вам почему-то понравилось. Мне все равно где он живет/работает и сколько там снега.
Очень странное тут иногда общение происходит. Некоторых так и подначивает кому-нибудь съязвить и поймать лайки – академический форум, не хухры-мухры!..
Вот про потоки это очень полезное уточнение – по делу, спасибо.
Таким образом, подытоживая.
В .NET на стек выделяется 1 мб и изменить это нельзя.
Если создать новый поток, то можно это задать.
Всё. Больше никакого ответа на этот вопрос не существует.
Как и то, что в Ростове выпадает мало снега. Подчёркиваю, что я это приводил для аллегории. Если кого-то это обидело - извините. Но это ровно вещи одной природы - 1 мб на стек в .NET и в Ростове мало снега.
Упоминание в некоторых контекстах про наших школьников носит косвенно личностный характер. Упоминание про то, что кому-то всё равно где кто-то работает также носит косвенно личностный характер. Ёрничанье по поводу того что стек более 1 МБ мало нужен - замечу - не носит личностного характера. Это у нас на форуме почему-то принято на абсолютно нейтральные сообщения кричать “хамство, хамство!”. Ещё раз вчитайтесь. Ответ не носит личностного характера, а говорит о том, что это вещь мало нужная. А упоминание " Мне все равно где он живет/работает" о человеке в третьем лице носит личностный характер. Пожалуйста, разберитесь.
Ерничанье нормально если оно не затрагивает личность. Более того, оно в данном случае выражает мнение - это не нужно.
Каким образом в Паскале c .NET 4+ можно перехватывать StackOverflowException.
Вот в IDE же эта ситуация с переполнением сейчас обрабатывается как-то: “A new guard page for the stack cannot be created”, а в консоли уже пишет “Ошибка времени выполнения: StackOverflowException: Программа завершена из-за переполнения программного стека”.
Кто-нибудь может разъяснить детали такой реализации, желательно с примером кода на Паскале?
Чисто из любопытства: те, кто живёт в Ростове-на-Дону всегда называют свой город полностью? Или просто Ростовом?
Не знаю. У меня в IDE при запуске по F9 пишет
Ошибка времени выполнения: StackOverflowException: Программа завершена из-за переполнения программного стека
А разве такое окошко при этом еще не появляется?
В любом случае, переполнение стека под .NET перехвачено. Вопрос – как это сделать на Паскале в своей программе?
Лично у меня - нет.
У меня просто вывод сообщения об ошибке. Win7.
Между собой - Ростовом. Если возможны разночтения (неясно из контекста), особенно с иногородними - полным названием. Второй Ростов (точнее, первый) - это Ростов Великий, в Ярославской области.
Пример алгоритма в студию. Только не те, в которых на стеке создается массив из сотни элементов.
Отчего же не рассказывает? Сделать надо так, как делает любой компилятор, обеспечивающий рекурсию: использовать стек для локальных данных. А рекурсивный вызов заменить на переход к началу процедуры.
Я это видел и это дико.
А что именно дикого?
Цитата из справочной системы:
Ниже приводятся некоторые классы исключений, определенные в пространстве имен System и являющиеся производными от класса System.SystemException: System.OutOfMemoryException - недостаточно памяти для выполнения программы; System.StackOverflowException - переполнение стека (как правило, при многократных вложенных вызовах подпрограмм);
Можно, конечно, заняться крючкотворством и сказать, что тут не говорится от том, что Оно работает. Но это же все равно дичь. Вот второкурсник поверил, что раз упомянуто, то и работает, но случился облом. Он очень страдал.
Да, согласен с Вами в том, что здесь наблюдается некая неопределённость, желательно её разрешить, указав в справке какие конкретно исключения (не-)могут быть перехвачены.
Скорее, наоборот - какие не могут быть перехвачены, ибо перехватываемых исключений в самих лишь встроенных библиотеках .NET много больше неперехватываемых.
Спасибо, поправил пост.