Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
ВнизКорректное создание и вывод сообщений об исключительных ситуациях Найти похожие ветки
← →
Cosinus © (2004-08-17 11:32) [0]Как правильно работать с исключениями? Точнее как правильно создавать и выводить сообщения о них? Вот как делаю я
procedure ErrorListCreate;
begin
ErorList:=TStringlist.Create;
ErrorList.Add("File open failure"); //index:=0
ErrorList.Add("File save failure");
......
ErrorList.Add("Create backup file failure");//index:=16
end;
procedure TMain.FormCreate(Sender: TObject);
begin
ErrorListCreate;
end;
procedure Error(ErrorIndex:word);
begin
ShowMessage(ErrorList.Strings[ErrorIndex]+
" with ErrorCode: "+IntToStr(GetLastError));
end;
function OpenBinFile(Filename:string):boolean;
begin
Result:=true;
try
Assignfile(BinFile,Filename);
Reset(BinFile);
...............
except
Result:=false;
end
end;
procedure ProcName;
begin
............
if not OpenBinFile then
begin
Error(0); //file open failure
.........
end;
............
end;
Не могли бы вы подсказать, корректно ли это и если нет, то как надо?
И еще вопрос. Хотелось бы сделать так, чтобы в сообщении об ошибке был мой текст + код ошибки(GetLastError) + интерпритация этой ошибки Виндой. Т.е. что то вроде "File open failure with ErrorCode: 5 (Access denied)". Где храняться соответствия между кодами ошибки и их строковыми представлениями?
← →
Семен Сорокин © (2004-08-17 11:52) [1]
try
// генерация исключения
except
on E: Exception do {либо специфический (зависит от блока в try), например EBDEEngineError, EMyException etc}
MessageDlg("Моё сообщение" + #13#10 + E.Message {сформированное сообщение}, ...)
end
загляни в Help там довольно неплохо расписан механизм генерации исключений.
← →
Skyle © (2004-08-17 11:57) [2]
> интерпритация этой ошибки Виндой
ShowMessage(SysErrorMessage(GetLastError));?
← →
Cosinus © (2004-08-17 12:30) [3]>>Семен Сорокин ©
Да, это именно то, что было нужно, спасибо.
>> Skyle ©
О SysErrorMessage(GetLastError) не знал... Спасибо.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.031 c