python 的 try - except 机制
try 语句 包含 try子句 和 except子句
try 语句的最终可包含 else子句. 当try中无异常抛出时, 可执行else语句中的剩余代码
抛出异常:
raise
用户自定义异常:
异常类通常应该直接或间接的从 Exception 类派生,例如:
Exception 默认的__init__() 被覆盖。新的方式简单的创建 value 属性。这就替换了原来创建 args 属性的方式
如果一个新创建的模块中需要抛出几种不同的错误时,一个通常的作法是为该模块定义一个异常基类,然后针对不同的错误类型派生出对应的异常子类:
定义清理行为:
finally子句
预定义清理行为:
有些对象定义了标准的清理行为,无论对象操作是否成功,不再需要该对象的时 候就会起作用。
https://docs.python.org/2.7/library/exceptions.html#exception-hierarchy
其余版本可自行到 python 官网, docs.python.org 上查找
try 语句 包含 try子句 和 except子句
try 语句的最终可包含 else子句. 当try中无异常抛出时, 可执行else语句中的剩余代码
抛出异常:
raise
用户自定义异常:
异常类通常应该直接或间接的从 Exception 类派生,例如:
class MyError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
try:
raise MyError(4.0)
except MyError as e:
print 'My exception occured , value:' , e.value
http://write.blog.csdn.net/postedit/40902665
Exception 默认的__init__() 被覆盖。新的方式简单的创建 value 属性。这就替换了原来创建 args 属性的方式
如果一个新创建的模块中需要抛出几种不同的错误时,一个通常的作法是为该模块定义一个异常基类,然后针对不同的错误类型派生出对应的异常子类:
class Error(Exception):
pass
class selfDefineError1(Error):
def __init__ (self , value):
self.value = value
class selfDefineError2(Error):
def __init__ (self, value , str):
self.value = value
self.str = str
定义清理行为:
finally子句
预定义清理行为:
有些对象定义了标准的清理行为,无论对象操作是否成功,不再需要该对象的时 候就会起作用。
with open ('a.txt') as f:
for Line in f:
print Line
https://docs.python.org/2.7/library/exceptions.html#exception-hierarchy
其余版本可自行到 python 官网, docs.python.org 上查找