Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 3, 2016 15:26:10

Ennjin
Зарегистрирован: 2016-09-20
Сообщения: 18
Репутация: +  1  -
Профиль   Отправить e-mail  

Перехват исключения

Всем привет. Работаю с библиотекой ftplib. Пытаюсь перехватить исключение error_perm:

from ftplib import FTP, error_perm
'''
try:
'''
except error_perm:
print('Bad')

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

Отредактировано Ennjin (Ноя. 3, 2016 15:26:42)

Офлайн

#2 Ноя. 3, 2016 16:39:55

Iskatel
Зарегистрирован: 2015-07-29
Сообщения: 291
Репутация: +  3  -
Профиль   Отправить e-mail  

Перехват исключения

Вангую что исключение случается не error_perm.

На этом у меня кофейная гуща кончилась, трейс лог бы скинул чтоли…

Офлайн

#3 Ноя. 5, 2016 06:39:10

Ennjin
Зарегистрирован: 2016-09-20
Сообщения: 18
Репутация: +  1  -
Профиль   Отправить e-mail  

Перехват исключения

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.

Офлайн

#4 Ноя. 5, 2016 06:47:44

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Перехват исключения

такое ощущение, что код

 login = ftp.login()
находится не внутри блока try:
можно первые строк 10 из ftp_brute.py? кстати, хорошее название



Офлайн

#5 Ноя. 5, 2016 06:58:03

Ennjin
Зарегистрирован: 2016-09-20
Сообщения: 18
Репутация: +  1  -
Профиль   Отправить e-mail  

Перехват исключения

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')

Это скажем, пре-пре-пре альфа

Офлайн

#6 Ноя. 5, 2016 08:18:43

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Перехват исключения

Должно быть как минимум вот так:

 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



Отредактировано izekia (Ноя. 5, 2016 08:19:47)

Офлайн

#7 Ноя. 5, 2016 09:11:08

Ennjin
Зарегистрирован: 2016-09-20
Сообщения: 18
Репутация: +  1  -
Профиль   Отправить e-mail  

Перехват исключения

izekia
учи язык, в данном случае обработку исключений:
Третий месяц учу всего лишь. В любом случае, спасибо, заработало.

Офлайн

#8 Ноя. 5, 2016 09:29:23

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Перехват исключения

ну здесь ошибка не в языке даже, а в самом понимании как это работает



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version