2024-06-28 19:21:01 发布
网友
我需要从Python中发生的错误中获取错误号。
例如,当试图通过Paramiko包传输目录时,会捕获以下代码中的错误:
try: sftp.put(local_path,target_path) except (IOError,OSError),errno: print "Error:",errno
我得到了输出
Error: [Errno 21] Is a directory
我想利用错误号进入更多的代码来传输目录和目录内容。
如果您正在讨论errno.h错误号,则可以从异常对象的errno属性获取它们,但只能从EnvironmentError(包括OSError、IOError和WindowsError)上获取。
errno.h
errno
EnvironmentError
OSError
IOError
WindowsError
特别是在WindowsError上,您还将获得一个winerror属性,该属性带有Windows特定的错误号。(不过,您并不经常看到其中一个,因为Python很少直接使用Win32 API。)
winerror
还有^{}包,它允许处理错误代码,而不必处理代码中的幻数。请看下面的示例:Are Python error numbers associated with IOError stable?
谢谢你澄清你的问题。
Python中的大多数Exception没有“错误号”。一个异常(不是双关语)是HTTPError异常,例如:
Exception
HTTPError
import urllib2 try: page = urllib2.urlopen("some url") except urllib2.HTTPError, err: if err.code == 404: print "Page not found!" else: ...
另一个例外(正如bobince所指出的)是EnvironmentErrors:
import os try: f=open("hello") except IOError, err: print err print err.errno print err.strerror print err.filename
输出
[Errno 2] No such file or directory: 'hello' 2 No such file or directory hello
如果您正在讨论
errno.h
错误号,则可以从异常对象的errno
属性获取它们,但只能从EnvironmentError
(包括OSError
、IOError
和WindowsError
)上获取。特别是在
WindowsError
上,您还将获得一个winerror
属性,该属性带有Windows特定的错误号。(不过,您并不经常看到其中一个,因为Python很少直接使用Win32 API。)还有^{} 包,它允许处理错误代码,而不必处理代码中的幻数。请看下面的示例:Are Python error numbers associated with IOError stable?
谢谢你澄清你的问题。
Python中的大多数
Exception
没有“错误号”。一个异常(不是双关语)是HTTPError
异常,例如:另一个例外(正如bobince所指出的)是
EnvironmentError
s:输出
相关问题 更多 >
编程相关推荐