我目前正在測驗用戶名或主機錯誤時的例外,但我不知道應該捕獲哪個例外。我試過 BadHostkeyException 但顯然這是錯誤的。如果我捕獲 socket.gaierror 那么那將是模糊的。
我得到這個輸出:
File "./sFTPscript10.py", line 141, in connSFTP
c.connect( hostname = config.host, username = config.username, pkey = k )
File "/usr/local/lib/python3.6/site-packages/paramiko/client.py", line 340, in connect
to_try = list(self._families_and_addresses(hostname, port))
File "/usr/local/lib/python3.6/site-packages/paramiko/client.py", line 204, in _families_and_addresses
hostname, port, socket.AF_UNSPEC, socket.SOCK_STREAM
File "/usr/lib64/python3.6/socket.py", line 745, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known
我的代碼:
def connSFTP(config,logger_info,logger_error,resetConnSFTP,logger_error_mail,reset):
#Fehleroptionen 1. Pfad zum SSH-KeyError
#-SSH-Key vorhanden?
#2.Host und/oder Username ist falsch
try:
k = paramiko.RSAKey.from_private_key_file(config.ssh_key_filepath) #SSH KEY
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
c.connect( hostname = config.host, username = config.username, pkey = k )
sftp = c.open_sftp()
logger_info.info('Connected with ' config.host)
return sftp
except (paramiko.BadHostKeyException) as err:
print('Username or Host is wrong' str(err))
uj5u.com熱心網友回復:
你可以看到自己的例外是socket.gaierror. 沒有更具體的例外。
您可以檢查errno更具體的錯誤(在您的情況下為 -2)。但請注意,它不會獨立于平臺。
except socket.gaierror as e:
print(e.errno)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/354134.html
