Добавлено: 23 июн 2005, 19:00
Absurd, ты слишком категоричен в своих утверждениях. Нельзя делать общие выводы на основании частных посылок. Да, бывают ситуации, когда ловить исключения поздно, но обычно это не так. Кто мешает грамотному програмеру организовать свою кучу (хоть 20 куч) и запрашивать память из нее? Почему процесс должен умирать, если в приватной куче кончилась память? Даже если ты работаешь с кучей по умолчанию, почему отказ в памяти должен восприниматься как фатальная ошибка, вне зависимости от ситуации? А может, у меня другой поток через секунду освободит блок, и я, организовав опрос, получу требуемую память - ау, что ты там говорил про многопоточность?
Да, в Delphi объект-исключение создается в куче. Но много ли ему надо? В большинстве случаев размер запрашиваемого блока гораздо больше, и уж сгенерить exception памяти достанет. А в С++ исключение вообще вырастает на стеке.
Твой пример из Java оценить не могу, не компетентен. Но сам пишу на С# и особенности работы в 'песочнице' представляю. Если программа тихо умерла, возможны 2 варианта: 1) 'грамотные люди' все же где-то напортачили, или 2) редкая ситуация фатальной ошибки в виртуальной машине - и такое бывает. Но это не агрумент отказываться от exception handling.
А ты заранее знаешь, сколько программе надо? Особенно, типа сервера БД? Я-то всегда думал, для того умные люди и придумали разные хитрые штуки вроде кучи или сборки мусора, чтобы можно было выделять памяти сколько нужно, а не всю и заранее
Этак мы возвращаемся во времена ДОС: "все мое - что хочу то и ворочу".
Короче, твой полемический задор мне понятен, я и сам люблю поспорить
, но тут ты не прав.
Да, в Delphi объект-исключение создается в куче. Но много ли ему надо? В большинстве случаев размер запрашиваемого блока гораздо больше, и уж сгенерить exception памяти достанет. А в С++ исключение вообще вырастает на стеке.
Твой пример из Java оценить не могу, не компетентен. Но сам пишу на С# и особенности работы в 'песочнице' представляю. Если программа тихо умерла, возможны 2 варианта: 1) 'грамотные люди' все же где-то напортачили, или 2) редкая ситуация фатальной ошибки в виртуальной машине - и такое бывает. Но это не агрумент отказываться от exception handling.
В программе типа сервера БД я бы с самого начала выделял сколько памяти мне надо
А ты заранее знаешь, сколько программе надо? Особенно, типа сервера БД? Я-то всегда думал, для того умные люди и придумали разные хитрые штуки вроде кучи или сборки мусора, чтобы можно было выделять памяти сколько нужно, а не всю и заранее

Короче, твой полемический задор мне понятен, я и сам люблю поспорить
