Форум: "Основная";
Текущий архив: 2003.12.23;
Скачать: [xml.tar.bz2];
Внизtry Найти похожие ветки
← →
TUser (2003-12-10 19:01) [0]Есть участок кода, котрый может вызывать эксепшен. Я его защищаю через try...exept/finally, но эксепшен все равно возникает. Открыл демо-проект, который у меня буквально неделю назад работал правильно, но там та же фигня. Код у демки такой
procedure THttpToMemoForm.GoButtonClick(Sender: TObject);
var
Data : TMemoryStream;
begin
DisplayMemo.Clear;
GoButton.Enabled := FALSE;
Data := TMemoryStream.Create;
try
httpcli1.URL := URLEdit.Text;
httpcli1.Proxy := ProxyEdit.Text;
httpcli1.ProxyPort := "80";
httpcli1.RcvdStream := Data;
httpcli1.Get;
LoadMemoFromMemoryStream(DisplayMemo, Data);
finally
Data.Free;
GoButton.Enabled := TRUE;
end;
end;
В своем проекте пишу нечто похожее
try
httpcli1.Get; (*
finally
if ms.Size=0 then memo5.Lines.Delete(memo5.Lines.Count-1)
else memo5.Lines.Strings[memo5.Lines.Count-1]:="Found "+url;
end;*)
except
else if ms.Size=0 then memo5.Lines.Delete(memo5.Lines.Count-1)
else memo5.Lines.Strings[memo5.Lines.Count-1]:="Found "+url;
end;
Я пробовал по-разному, on писал и пр., но каждый раз выскакивает ошибка, которая назначается через raise в методе httpCli1.Get
Что такое случилось и как лечить?
← →
Иван Шихалев (2003-12-10 19:06) [1]
finally
Exception не глушит. а конструкция
except
else
вообще не должна компилироваться, ИМХО.
← →
Тимохов (2003-12-10 19:07) [2]Что значит "выскакивает"?
← →
Sergey_Masloff (2003-12-10 19:12) [3]except гасит исключение
finally не гася исключение позволяет гарантированно выполнить участок кода.
можешь сделать так:
try
{выделяешь ресурсы}
try
{работаешь}
finally
{высвобождаешь ресурсы}
end;
except
on E:Exception do
Raise;
end;
← →
TUser (2003-12-10 19:12) [4]Компилироваться-то она компилируется. Но ни эта конструкция, ни
except
on EHTMLException do something
не работеат. Эксепшен выскакивает в любом случае, т.е. появляется окошко с сообщением об ошибке и выполнение проги завершается.
Ошибка, скорее всего не в коде, а в каких-то мне не понятных настройках Делфы. Повторяю - неделю назад или 2 демо-проект, прилагаемый к компоненту THTMLCli работал, а теперь - нет.
← →
Arm79 (2003-12-10 19:14) [5]А если запустить в проводнике? Выдается ошибка?
← →
Тимохов (2003-12-10 19:19) [6]может у тебя эесептион имеет класс отличный от EHTMLException?
← →
TUser (2003-12-10 19:29) [7]2 Тимохов
Нет, выскакивает именно то, что я написал.
Я сейчас вылечился так. В исходниках компонента убрал raise, т.е. написал
if FStatusCode >= 400 then
begin end;// raise EHttpException.Create(FReasonPhrase, FStatusCode);
Не уверен, что это очень хорошо, но работает.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c