8. 错误和异常

python 的 try - except 机制

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


python 2.7 的完整异常列表:

https://docs.python.org/2.7/library/exceptions.html#exception-hierarchy

其余版本可自行到 python 官网, docs.python.org 上查找
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值