Итак, вы написали программу, запустили в отладчике — все хорошо, все нормально. Поставили в рабочий процесс — валится. Причем, в самых неожиданных местах.
Что делать?
Начинаем думать. Везде ставить try-catch… вычислительный блок будет здорово тормозить. Значит, надо сделать отладочную версию. Значит, вводим
#define __TRY__DEBUG__
Читать полностью »
Рубрика «исключения» - 3
Использование try — catch для отладки
2012-12-20 в 19:30, admin, рубрики: c++, исключения, ооп, С++, метки: исключения, С++Реализация 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.