Я отлаживаю программу delphi.Должен ли я освобождать/уничтожать исключения после обработки исключений?
except
on e: TErrorTapeDrive do
if e.errorCode = 1104 then
if Assigned(indexDoneEvent) then
indexDoneEvent;
// other handling...
// other handling...
end;
Я улавливаю Эксперимент и делаю то, что мне нужно. Теперь, когда счетчик программ отладки достигнет линии чуть ниже end;
, если я нахожу e.errorCode
с помощью курсора, я все еще вижу его значение. Я ожидал бы, что это было вне рамок и, в конечном счете, уничтожено.
Итак, мой вопрос: должен ли я освобождать/уничтожать исключения после обработки исключений?
Обратите внимание на повторное поднятие этого исключения в случае, если код ошибки * не является * 1104. В настоящее время ваш код * молча игнорирует * все другие ошибки. –
Не только errorCode, @RobKennedy, но и другие типы Исключений. –
Нет, Паоло. Ваш текущий код уже * игнорирует * другие типы исключений, что является ** правильным поведением **. Никогда не поймайте исключение, если вы не пишете код, чтобы * исправить * проблему, вызвавшую исключение. Если вы не можете исправить это, тогда не поймайте его; в противном случае код вверх по стеку вызовов будет * denied * возможность исправить его. –