WEB开发网
开发学院软件开发Python Python异常处理体系简介 阅读

Python异常处理体系简介

 2010-09-22 11:09:22 来源:WEB开发网   
核心提示: 异常名称标识出具体的类:Python异常是那些类的对象,执行raise语句时,Python异常处理体系简介(4),Python会创建指定的异常类的一个对象,raise语句还可指定对异常对象进行初始化的参数,一个从用户获得口令的封装模块,获得口令在 UNIX、Windows 和 Mac OS

异常名称标识出具体的类:Python异常是那些类的对象。执行raise语句时,Python会创建指定的异常类的一个对象。

raise语句还可指定对异常对象进行初始化的参数。为此,请在异常类的名称后添加一个逗号以及指定的参数(或者由参数构成的一个元组)。

例:

try:
raise MyError #自己抛出一个异常
except MyError:
print 'a error'

raise ValueError,’invalid argument’

捕捉到的内容为:

type  = VauleError
message = invalid argument

异常处理的一些其它用途

除了处理实际的错误条件之外,对于异常还有许多其它的用处。在标准 Python 库中一个普通的用法就是试着导入一个模块,然后检查是否它能使用。

导入一个并不存在的模块将引发一个 ImportError 异常。你可以使用这种方法来定义多级别的功能――依靠在运行时哪个模块是有效的,或支持多种平台 (即平台特定代码被分离到不同的模块中)。

你也能通过创建一个从内置的 Exception 类继承的类定义你自己的异常,然后使用 raise 命令引发你的异常。如果你对此感兴趣,请看进一步阅读的部分。

下面的例子演示了如何使用异常支持特定平台功能。代码来自 getpass 模块,一个从用户获得口令的封装模块。获得口令在 UNIX、Windows 和 Mac OS 平台上的实现是不同的,但是这个代码封装了所有的不同之处。

例支持特定平台功能

 # Bind the name getpass to the appropriate function

  try:
import termios, TERMIOS                    
except ImportError:
try:
import msvcrt                          
except ImportError:
try:
from EasyDialogs import AskPassword
except ImportError:
getpass = default_getpass          
else:                                  
getpass = AskPassword
else:
getpass = win_getpass
else:
getpass = unix_getpass

上一页  1 2 3 4 5  下一页

Tags:Python 异常 处理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接