Главная страница
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.013 c
15-1223278720
tubik
2008-10-06 11:38
2008.12.07
поделитесь книгой, пожалуйста


15-1223128705
Городской Шаман
2008-10-04 17:58
2008.12.07
Жалеете ли вы о том, что пошли работать в IT.


15-1223229279
TUser
2008-10-05 21:54
2008.12.07
Проспект имени Путина


2-1225201432
Zhekson
2008-10-28 16:43
2008.12.07
SaveDialog1.FileName


3-1210917985
Dizzzel
2008-05-16 10:06
2008.12.07
Динамическое создание полей в хранимой процедуре