Здравствуйте, mazurkin, Вы писали:
M>Mike Chaliy wrote:
>> А еще вопрос. Assert.notNull(obj) попадает в релизные билды?
M>Вообще вопрос совершенно неоднозначный и весьма интересный, по крайней
M>мере потому, что в свое время много над ним думал
M>Если мы обратимся к истории и вспомним MSVC+/Borland Delphi и иже с
M>ними, то увидим, что там существует четкое разделение release и debug
M>билдов. И в debug билдах ассерты действительно отключаются — в C++ через
M>макросы, в Delphi — вроде через сам язык.
M>Меня все время это очень удивляло. Я нахожу в этом некое недальновидное
M>лицемерие.
M>То есть мы поставляем клиенту продукт с отключенной системой внутренних
M>проверок в надежде на то, что если ошибки и возникнут, то в отсутствие
M>ассертов у нас всплывет не четкий и понятный баннер с информацией о том,
M>что мы облажались и где допустили такую ситуацию; а абстрактное окошко
M>об ошибке в модуле kerner32.dll и можно будет все списать на "глючную
M>винду", а то глядишь и все само собой рассосется. И я бы понял, если бы
M>отключение ассертов как то влияло на производительность, но ведь
M>банальные проверки на фоне других операций никаких задержек не вносят.
M>Посему я сторонник жесткой ответственности — внутренние проверки не
M>отрубать вообще никогда, кроме тех, что реально влияют на
M>производительность.
Просто в .Нет когда говорят ассеры, обычно подразумеваться дебажные ассерты. Вот меня и заинтерисовал вопрос, как с этим доло обстоит в джаве. Быстрым поиском я этого не нашел, вот и решил спросить.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>