На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> настройка компилятора - не показывать ошибки
    Цитата Демо @
    Получать же при отладке одно и то же исключение 2 раза - вовсе бессмысленно.
    Это как - два раза одно исключение?
      Цитата Alexander N @
      Каким образом?

      Таким, что в винде единый супернавороченный механизм обработки исключений, как хардварных (типа деления на 0 или AV), так и любых пользовательских, генерируемых через RaiseException. Тут тебе и повышение приоритета обработки исключения, и сохранение\восстановление нихилых структур данных типа контекста потока и "уйма" процессороного времени - порядка нескольких тысяч тактов при отсутствии отладчика и несколько сотен тысяч тактов при наличии отладчика (даже если он не реагирует на исключение, а просто уведомляется системой). И все это вместо того, чтобы просто "втихую" проверить if Handle < 0 then ... за пару тактов процессора ?!
        Цитата Alexander N @
        Это как - два раза одно исключение?


        Сначала Delphi перехватывает исключение и показывает сообщение с ошибкой пользователю, затем вновь поднимает это же исключение в выполняющейся программе.
        Т.е. этап обработки исключения самим Delphi - совершенно лишний.
          Цитата Демо @
          Сначала Delphi перехватывает исключение и показывает сообщение с ошибкой пользователю, затем вновь поднимает это же исключение в выполняющейся программе.
          Т.е. этап обработки исключения самим Delphi - совершенно лишний

          Это неверная интерпретация, т.к. отладчик никакие исключения (кроме своих брикпойнтов) не обрабатывает и ничего вновь не "поднимает", а просто выводит сообщение\предупреждение о возникшем исключении и дает возможность юзеру продолжить обработку либо в пошаговом режиме с заходом в except\finally, или просто продолжить\проскочить все по F9
          Сообщение отредактировано: leo -
            Согласен, неверно выразился.
              В догонку: все же отключать останов на всех исключениях, это "не есть гуд". Но если есть компоненты или просто часть кода, которая "грешит" тем, что часто\непрерывно генерит эксепшены определенного типа, то можно добавить этот тип эксепшена в список Exception Types to Ignore и соотв-но игнорить не все исключения, а лишь определенные. В частности в примере Alexander N можно было бы добавить в список EFOpenError, чтобы не надоедали ошибки открытия файлов
                leo, по поводу класса TFileStream и THandleStream Ваша взяла :)
                  Цитата leo @
                  И все это вместо того, чтобы просто "втихую" проверить if Handle < 0 then ... за пару тактов процессора ?!


                  Ну скажем не просто "не проверить". А дать возможность написать только код для нормального случая. Не засоряя его всеми этими проверками. А что будет, если файл не найден? А что будет, если он пустой? (я, надеюсь, ReadBeffer используется?) А что будет, если формат данных неверен?
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0335 ]   [ 16 queries used ]   [ Generated: 26.07.25, 07:52 GMT ]