Простой пример, основанный на книге “Глубины Инди”
1 2 3 |
... uses IdException ... |
Собственно сам код…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
function IsFTPServerConnectionOk: Boolean; begin Result:=false; with idFTP do begin Host:=FTPParams.Host;// 'localhost'; //FTP-сервер Port:=FTPParams.Port;// 22; //порт ФТП сервера Username:=FTPParams.Username;// 'Логин'; Password:=FTPParams.Password;// 'Пароль'; end; try idFTP.Connect; try try if IdFTP.Connected then Result:=true; finally idFTP.Disconnect; end; except //Other exceptions on E: EIdException do begin showmessage(E.ClassName+' An network error occurred during communication: ' +#13#10+#13#10+E.Message); end; on E: Exception do begin showmessage(E.ClassName+' An unknown error occurred during communication: ' +#13#10+#13#10+E.Message); end; end; except // Catching Connection Exceptions on E: EIdException do begin showmessage(E.ClassName+' An network error occurred while trying to connect: ' +#13#10+#13#10+E.Message); end; on E: Exception do begin showmessage(E.ClassName+'An unknown error occurred while trying to connect: ' +#13#10+#13#10+E.Message); end; end; end; |
Здесь просто возбуждаются исключения. В принципе их можно где-то хранить и как-то обрабатывать. Отделены ошибки соединения от всех остальных ошибок. Но в данном, случае, конечно это перебор, так как единственное, что мы делаем – это только соединяемся с FTP сервером.
Способ №2
Также другой способ – нашел на форуме, просто иллюстрация идеи
http://delphimaster.net/view/6-94986
1 2 3 4 5 6 7 8 9 10 |
var B: array [1..3] of Char; begin Timer.Enabled:=false; <<<<<< if FTP.Connected then try FTP.ReadBuffer(b, 1); except meLog.Lines.Add("НЕТ СОЕДИНЕНИЯ"); end; Timer.Enabled:=true; <<<<<< end |