Главная страница
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.018 c
3-1211225835
Ary
2008-05-19 23:37
2008.12.07
Сортировка


15-1223305707
Slider007
2008-10-06 19:08
2008.12.07
С днем рождения ! 5 октября 2008 воскресенье


15-1223305384
Slider007
2008-10-06 19:03
2008.12.07
С днем рождения ! 4 сентября 2008 суббота


2-1224875284
CodeMaster
2008-10-24 23:08
2008.12.07
Поддержка скриптов


1-1202752824
Igit
2008-02-11 21:00
2008.12.07
Автоматическое скроллирование к ItemIndex в ListView