Приветствую всех изучающих Java!
Как известно исключения в Java, при наследовании подчиняются требованию сужения спецификации, а не ее расширения, в отличие от обычных классов.
В книге Bruce Eckel «Thinking in Java, 4 ed.» приведено описание ограничений, накладываемых при использовании исключений. Читать полностью »
Рубрика «исключения» - 3
Обзор ограничений, накладываемых на исключения, на примере наследования и реализации интерфейса
2013-04-30 в 12:01, admin, рубрики: java, исключения, Песочница, Программирование, метки: java, исключения, ПрограммированиеОсобенности обработки исключений в Windows
2012-12-24 в 12:23, admin, рубрики: c++, исключения, ооп, Проектирование и рефакторинг, метки: c++, try-catch, исключенияПрочитав недавний топик "Использование try — catch для отладки" решил все таки в качестве дополнения поделиться и своим опытом.
В этой статье предлагаю рассмотреть
получение callstack’а места, где было брошено исключение в случае работы со
структурными исключениями (MS Windows). В детали работы исключений вдаваться не будем, т.к. это тянет на отдельный цикл статей (для интересующихся рекомендую Рихтера, MSDN и wasm.ru). Конечно, есть много уже готовых проектов для генерации minidump’ов (например CrashRpt или google-breakpad), так что эта статья носит больше образовательный характер.
Что делать с полученным стеком вызовов — решать вам. Можно смотреть отладчиком, можно записать в файл и смотреть сторонней программой (для этого не забудьте записать список загруженных модулей с их адресами, а так же вам понадобятся отладочные символы).
Читать полностью »
Использование try — catch для отладки
2012-12-20 в 19:30, admin, рубрики: c++, исключения, ооп, С++, метки: исключения, С++ Итак, вы написали программу, запустили в отладчике — все хорошо, все нормально. Поставили в рабочий процесс — валится. Причем, в самых неожиданных местах.
Что делать?
Начинаем думать. Везде ставить try-catch… вычислительный блок будет здорово тормозить. Значит, надо сделать отладочную версию. Значит, вводим
#define __TRY__DEBUG__
Читать полностью »
Реализация Common Lisp Condition System на C#
2012-08-25 в 8:46, admin, рубрики: .net, common lisp, exceptions, исключения, Программирование, метки: .net, c++, Common Lisp, exceptions, исключения, ЛиспОдним из самых замечательных и притягательных свойств языка Common Lisp является, безусловно, его система обработки исключений.
Более того, по моему, лично, мнению, подобный подход к исключениям является единственно правильным для всех императивных языков, и вот по какой простой причине:
Механизм «исключений»(или, как они называются в мире CL — conditions) в Common Lisp отделен от механизма раскрутки стека, а это, соответственно, позволяет обрабатывать любые всплывающие в программе исключительные(да и не только исключительные) ситуации прямо в том месте, где они возникли, без потери контекста выполнения программы, что влечет за собой удобство разработки, отладки, да и вообще, удобство построения логики программы.
Наверное, следует сказать, что Common Lisp Condition System, несмотря на свою уникальность в среде высокоуровневых языков программирования, очень близка известным многим разработчикам низкоуровневым средствам современных операционных систем, а именно: синхронным сигналам UNIX и, гораздо ближе, механизму SEH(Structured Exception Handling) из Windows. Ведущие реализации CL основывают такие элементы управления потоком вычислений, как механизм обработки исключений и раскрутка стека, именно на них.
Несмотря на отсутствие похожего механизма во многих других(если не всех) императивных языках программирования, он поддается реализации в более-менее вменяемом виде на большинстве из них. В данной статье я опишу реализацию на C#, по ходу дела разбирая в деталях саму концепцию данного подхода к «исключениям».
Читать полностью »
Прочие варианты использования оператора else
2012-07-24 в 8:41, admin, рубрики: python, исключения, циклы программированияВсем нам хорошо известен способ использования ключевого слова else совместно с if:
if x > 0:
print 'positive'
elif x < 0:
print 'negative'
else:
print 'zero'
Однако в Python’е существует и несколько других, неизвестных большинству программистов, применений else.
