Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.12.07;
Скачать: CL | DM;

Вниз

ForceDirectories и Exception   Найти похожие ветки 

 
Andy BitOff ©   (2008-10-28 17:16) [0]

Чего-то я не пойму, это у всех так или только у меня? Если у всех, то что за дела.

type
 ESomeError = class(Exception);
...
 try
   if not ForceDirectories(edt_OutputDirName.Text) then begin
     Raise ESomeError.Create("Не удалось создать каталог " + edt_OutputDirName.Text);
   end;
...
 except
   on E: ESomeError do Application.MessageBox(PChar(E.Message), "Сообщение.", MB_ICONSTOP or MB_OK or MB_SYSTEMMODAL);
 end;

При выполнении ForceDirectories с edt_OutputDirName.Text := , например, "qwerty" происходит Exception, при этом, соответственно, мы не попадаем на возбуждение, а так же пропускается блок except.

В чем дело? Кто-нибудь знает?


 
Сергей М. ©   (2008-10-28 17:24) [1]


> мы не попадаем на возбуждение


Значит мы не возбудились - ForceDirectories вернула True.
Вот такие вот дела.


 
Andy BitOff_   (2008-10-28 17:47) [2]

Ну то что мы не возбудились, это-то я и сам понимаю ;)
Однако по логике не может ForceDirectories вернуть True при ForceDirectories("qwerty"), да и не возвращает потому, что вылазит не мой Exception. Т.е. Exception вылазит, но не этот; on E: ESomeError

P.S.
Чего-то в DMClient"е слетел пароль, а так его не помню. Так что буду пока Andy BitOff_


 
han_malign ©   (2008-10-28 18:05) [3]

function ForceDirectories(Dir: string): Boolean;
var
 E: EInOutError;
begin
 Result := True;
 if Dir = "" then
 begin
   E := EInOutError.CreateRes(@SCannotCreateDir);
   E.ErrorCode := 3;
   raise E;
 end;

 Dir := ExcludeTrailingPathDelimiter(Dir);
{$IFDEF MSWINDOWS}
 if (Length(Dir) < 3) or DirectoryExists(Dir)
   or (ExtractFilePath(Dir) = Dir) then Exit; // avoid "xyz:\" problem.
{$ENDIF}
{$IFDEF LINUX}
 if (Dir = "") or DirectoryExists(Dir) then Exit;
{$ENDIF}
 Result := ForceDirectories(ExtractFilePath(Dir)) and CreateDir(Dir);
end;


 
Anatoly Podgoretsky ©   (2008-10-28 19:09) [4]

> Andy BitOff  (28.10.2008 17:16:00)  [0]

Есть же отладчик.


 
Andy BitOff_   (2008-10-28 20:06) [5]

> Anatoly Podgoretsky ©   (28.10.08 19:09) [4]

Да, чего-то стормозил, видимо отключена отладка модулей. В общем ступил.



Страницы: 1 вся ветка

Текущий архив: 2008.12.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
2-1224832118
worldmen
2008-10-24 11:08
2008.12.07
Упорядочить дейсвия (DragDrop) графически и логически.


15-1223300201
Gahgreaph
2008-10-06 17:36
2008.12.07
Скажите по дизайну forum.delphimaster.ru


15-1222788859
oxffff
2008-09-30 19:34
2008.12.07
Как поступить?


1-1202818070
JetuS
2008-02-12 15:07
2008.12.07
Алгоритм сравнения матриц


2-1225199988
DJones
2008-10-28 16:19
2008.12.07
Простой опрос прибора на TTimer