Some HAT... |
= Анабар.ru => Python-форумы => Язык программирования Python => сообщение 974 |
| Вход | Регистрация | |
нет
фото
Автор: Scholar Дата: 5-Sep-2006 23:14 (gmt = -3.0) E-mail: python-src@yandex.ru RE: Исключение
Как можно в конструкции: try: .... except: .... узнать какое исключение было вызвано и параметры ошибки ?
Для этого нужно воспользоваться функцией из модуля sys: exc_info() -> кортеж (type, value, traceback). А так же можно получить тип и значение исключения по средством следующих имен (тоже из модуля sys): exc_type, exc_value.
Пример 1: (Используем exc_info())
1 import sys # Импортируем модуль 2 try: # Устанавливаем проверку за возникновением исключения 3 f = open(r"C:\123.txt", 'r') # Так как файла с таким именем нет (у меня на компьютере), 4 # возникает икслючение. 5 except: # За этим оператором следует код, который будет выполнен в случае 6 # если исключение возникнет 7 tip, value, trace = sys.exc_info() # Сохраняет кортеж в переменные: 8 # в tip - тип исключения; 9 # в value - значение, trace - объект трассировки) 10 print tip, value # Выводим тип и значение возникшего исключенияПосле выполнения получаем строку:
1 exceptions.IOError [Errno 2] No such file or directory: 'C:\\123.txt' 2 # "exceptions.IOError" - tip, "[Errno 2] No such file or directory: 'C:\\123.txt" - value—————————————————————————Пример 2: (Используем exc_type и exc_value)
1 import sys # Импортируем модуль 2 try: # Устанавливаем проверку за возникновением исключения 3 f = open(r"C:\123.txt", 'r') # Так как файла с таким именем нет (у меня на компьютере), 4 # возникает икслючение. 5 except: # За этим оператором следует код, который будет выполнен в случае, 6 # если исключение возникнет 7 tip = sys.exc_type; value = sys.exc_value # Сохраняет значения из имен exc_type и exc_value в переменные: tip и value. 8 print tip, value # Выводим тип и значение возникшего исключенияПосле выполнения получаем строку:
1 exceptions.IOError [Errno 2] No such file or directory: 'C:\\123.txt' 2 # "exceptions.IOError" - tip, "[Errno 2] No such file or directory: 'C:\\123.txt" - value—————————————————————————В данном случае, результаты одинаковы, но следует иметь ввиду, что глобальные имена модуля sys: exc_value, exc_type созданы для удобства использования и не могут быть полноценной альтернативой функции exc_info(). :-) Ну, это если вдруг кто не заметит разницы Замечания и пожелания по этой статье направлейте на python-src@yandex.ru
все сообщения ветви:
- 954 Исключение bumbarasspb | 28-Aug-2006, 14:23 | просмотров: 7534
- 974 RE: Исключение Scholar | 5-Sep-2006, 23:14 | просмотров: 11105 ⇐ ◄
- 975 RE: По поводу оформления Scholar | 5-Sep-2006, 23:16 | просмотров: 7584
- 976 немного подправил. [-] Admin | 6-Sep-2006, 00:13 | просмотров: 7062
- 977 СПАСИБО!!! очень хорошо [-] Scholar | 6-Sep-2006, 20:42 | просмотров: 7265
Недостаточно прав для написания ответа
Время генерации страницы в секундах: 0.073