Главная страница
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.016 c
2-1225089482
Vitaliy_____
2008-10-27 09:38
2008.12.07
Списки. Сортировка.


15-1222860991
stas
2008-10-01 15:36
2008.12.07
MSSQL 2005 Интересное преобразование Float в строку


1-1202915605
Zabludshiy
2008-02-13 18:13
2008.12.07
Проблема с заполнением treeView.Items[i].Data


2-1225036430
AWiiS
2008-10-26 18:53
2008.12.07
Delphi и Access - заставить жить дружно


15-1223158808
Германн
2008-10-05 02:20
2008.12.07
Глюк форума.