Форум: "KOL";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизПроблемі с ON E: exception Найти похожие ветки
← →
Babenko Alexey (2003-07-31 13:51) [0]Почему не работает следующий код
var i: Integer;
begin
i := 0;
TRY
i := i div I;
EXCEPT ON E: exception
do begin
ShowMessage( "Exception: " + E.Message);
end;
END;
end;
Ну перехватил он ошибку, а толку мало. Всё равно прога вывалилась.
хотя такой пашет нормально
var i: Integer;
begin
i := 0;
TRY
i := i div I;
EXCEPT
ShowMessage( "Exception: " );
END;
end;
Проблема в последнем примере в том, что я не знаю какая ошибка произошла.
← →
mdw © (2003-07-31 14:03) [1]Подключи модуль Err.pas
← →
Babenko Alexey (2003-07-31 19:56) [2]Не ві не поняли. Всё у меня подключенно. Exceptions перехватываются, я о них узнаю. Но если я пишу как в 1 варианте, то после перехвата прога благополучно вываливается. Если же как во 2 варианте, то всё класно работает, но я не могу прописать в логи какая именно ошибкка произошла
← →
mdw © (2003-07-31 21:14) [3]Да, действительно. Причем не работает и просто
EXCEPT
ON E: exception do;
END;
скорее всего это ошибка, к автору нужно обращаться.
← →
Кладов (2003-08-01 21:24) [4]Вообще, когда я делал err.pas, строчку
ExceptClsProc := @GetExceptionClass;
просто закомментарил, и подписал:
// {-} ExceptClsProc is used only in "except on" implementation. If error code
// is catched by another way, it is not needed.
т.е. почему-то решил на тот момент, что on E: Exception не потребуется. Потом было изменение, которое позволяло обработать on exception для случая собственного raise, а процедуру GetExceptionClass то ли не нашел как подправить, то ли просто забыл про это закомментаривание.
Короче, возьмите исправленный kol_err.zip, теперь можно обрабатывать on exception, как написано было в описании, и теперь не только для собственных возбуждений по raise.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c