Найти - Пользователи
Полная версия: Перехват исключения
Начало » Python для новичков » Перехват исключения
1
Ennjin
Всем привет. Работаю с библиотекой ftplib. Пытаюсь перехватить исключение error_perm:
from ftplib import FTP, error_perm
'''
try:
'''
except error_perm:
print('Bad')

Вместо, чтобы вывести ‘Bad’, мне выводится полный код ошибки.
Iskatel
Вангую что исключение случается не error_perm.

На этом у меня кофейная гуща кончилась, трейс лог бы скинул чтоли…
Ennjin
Traceback (most recent call last):
File "ftp_brute.py", line 5, in <module>
login = ftp.login()
File "/usr/lib/python3.5/ftplib.py", line 419, in login
resp = self.sendcmd('PASS ' + passwd)
File "/usr/lib/python3.5/ftplib.py", line 272, in sendcmd
return self.getresp()
File "/usr/lib/python3.5/ftplib.py", line 245, in getresp
raise error_perm(resp)
ftplib.error_perm: 530 Login incorrect.
izekia
такое ощущение, что код
 login = ftp.login()
находится не внутри блока try:
можно первые строк 10 из ftp_brute.py? кстати, хорошее название
Ennjin
izekia
можно первые строк 10 из ftp_brute.py? кстати, хорошее название
Отличное название
  from ftplib import FTP, error_perm
URL = str(input())
ftp = FTP(URL)
login = ftp.login()
try:
	print(login)
except ftplib.error_perm:
	print('Bad')

Это скажем, пре-пре-пре альфа
izekia
Должно быть как минимум вот так:
 from ftplib import FTP, error_perm
URL = str(input())
with FTP(URL) as ftp:
    try:
        login = ftp.login()
        print(login)
    except ftplib.error_perm:
        print('Bad')

учи язык, в данном случае обработку исключений:
Для того чтобы исключение было обработано код вызывающий исключение должен находиться внутри блока try, если буквально, то между try и except
Ennjin
izekia
учи язык, в данном случае обработку исключений:
Третий месяц учу всего лишь. В любом случае, спасибо, заработало.
izekia
ну здесь ошибка не в языке даже, а в самом понимании как это работает
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB