2014-09-12 4 views
2

Я хочу, чтобы создать некоторую логику, которая будет ловить некоторые исключения из paramiko модуляотлов исключения из 3-библиотек сторонних

Я хочу, чтобы создать некоторую логику, которая ловит исключение, если неправильный пароль введен, но я не уверен, как чтобы сделать это с библиотекой, которая не из стандартной библиотеки

try: 
     ssh.connect(host, password = "wrongpassword") 
    except _____ as e: 
     print error msg 

сообщение об ошибке:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/Library/Python/2.7/site-packages/paramiko/client.py", line 273, in connect 
    self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys) 
    File "/Library/Python/2.7/site-packages/paramiko/client.py", line 456, in _auth 
    raise saved_exception 
paramiko.ssh_exception.AuthenticationException: Authentication failed. 

Я не уверен, как Crea te исключение для этого типа сообщения об ошибке. я смотрел другой код и он, как правило, содержит встроенный в исключении ->https://docs.python.org/2/library/exceptions.html

ответ

4
except paramiko.ssh_exception.AuthenticationException as e: 

предполагая, что вы импортировали paramiko. Исключения - это всего лишь объекты в python, вы можете передать их.

Любое исключение содержит различную информацию об этом классе, состоянии системы и ее месте. Самая простая вещь, которую вы можете сделать:

print e 

, который даст вам сообщение, с помощью которого было создано исключение.

+0

Как напечатать это сообщение? В частности, не удалось выполнить проверку подлинности. Будет ли '' 'сообщение об ошибке аутентификации '? – Liondancer

+0

@ Liondancer зависит от того, как они реализовали класс исключения. Обычно 'e' должно быть' Authentication failed ', если нет, сообщение 'Authentication failed' должно быть в' e.args'. Поэтому 'print e' или' print e.args' должно дать вам это сообщение – ashwinjv