Форум: "Основная";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];
ВнизПрерывание Thread из-за исключения... Найти похожие ветки
← →
SergP © (2005-11-26 20:49) [0]Имеется процедура которая парсит данные csv-формата:
procedure ParseHistory(instr:string);
var
rc:Histrecord;
line,i:integer;
s:string;
lns:TStrings;
fodd:boolean;
begin
lns:=TStringlist.Create;
try
lns.Text:=instr;
lns.Delete(0);
for line:=0 to lns.Count-1 do
begin
s:=lns.Strings[line];
fodd:=true;
for i:=1 to length(s) do
begin
fodd:=fodd xor (s[i]=""");
if (s[i]=",") and fodd then s[i]:=chr(13);
end;
s:=StringReplace(s,"""",chr(2),[rfReplaceAll]);
s:=StringReplace(s,""","",[rfReplaceAll]);
s:=StringReplace(s,chr(2),""",[rfReplaceAll]);
frmmain.Memo1.Lines.Add(s);
with TStringList.Create do
try
Text:=s;
rc.htime:=StrToDateTimeDef(strings[0],0);
rc.htype:=strings[1];
rc.hBatch:=StrToIntDef(strings[2],0);
rc.hemetal:=strings[3];
rc.hWeight:=strings[4];
rc.hToFromNumber:=strings[5];
rc.hToFromName:=strings[6];
rc.hEnteredAmount:=StrToCurrDef(strings[7],0);
rc.hEnteredCurrency:=strings[8];
rc.hRate:=StrToCurrDef(strings[9],0);
rc.hMemo:=strings[10];
rc.hPayeeName:=strings[11];
rc.hPayeeAddress:=strings[12];
rc.hRedemptionInfo:=strings[13];
rc.hMerchantRefNumber:=strings[14]; //[исключение]
finally
free;
end;
SetLength(history,length(history)+1);
history[high(history)]:=rc;
end;
finally
lns.Free;
end;
end;
она запускается в дополнительном потоке.
но если в [исключение] возникает исключение (по причине того что strings[14] не существует, то прерывается выполнение потока. Почему так? Ведь код заключен в try finally end ...
← →
SergP © (2005-11-26 20:51) [1]
> frmmain.Memo1.Lines.Add(s);
это для отладки. На это можно не обращать внимания....
← →
Virgo_Style © (2005-11-26 20:59) [2]SergP © (26.11.05 20:49)
> Почему так? Ведь код заключен в try finally end ...
try-finally-end позволяет выполнить определенные действия в любом случае, но при этом не "гасит" возникшее исключение.
← →
DrPass © (2005-11-26 22:21) [3]
> Ведь код заключен в try finally end ...
try..except
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c