получение кода ошибки ошибки

Я должен получить код ошибки из ошибки, которая произошла в Python.

Исключая; При попытке передать каталог через пакет Paramiko, ошибка фиксируется с этой частью кода:

try:
    sftp.put(local_path,target_path)    
except (IOError,OSError),errno:
    print "Error:",errno

Для которого я получаю вывод,

Error: [Errno 21] Is a directory

Я хочу использовать код ошибки для входа еще в некоторый код для передачи каталога и содержания каталога.

11
задан Tim Pietzcker 23 July 2014 в 23:11
поделиться

2 ответа

Спасибо за разъяснение вашего вопроса.

Большинство исключений в Python не имеют «номеров ошибок». Одно исключение (без каламбура) - это исключения HTTPError , например:

import urllib2 
try:
   page = urllib2.urlopen("some url")
except urllib2.HTTPError, err:
   if err.code == 404:
       print "Page not found!"
   else:
       ...

Другое исключение (как указано bobince) - это EnvironmentError s:

import os
try:
   f=open("hello")
except IOError, err:
   print err
   print err.errno
   print err.strerror
   print err.filename

output

[Errno 2] No such file or directory: 'hello'
2
No such file or directory
hello
14
ответ дан 27 October 2019 в 05:20
поделиться

Если вы говорите об ошибках errno.h , их можно получить из свойства errno объекта исключения, но только для EnvironmentError (который включает OSError , IOError и WindowsError ).

В частности, при WindowsError вы также получите свойство winerror с номером ошибки, характерным для Windows. (Однако вы не часто встречаетесь с одним из них, поскольку Python использует Win32 API напрямую относительно редко.)

4
ответ дан 27 October 2019 в 05:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: