python异常处理try...except

常见错误


(1)NameError:命名错误

(2)SyntaxError:语法错误

(3)IOError:IO错误

(4)ZeroDivisionError:除0错误

(5)ValueError:值错误

(6)KeyboardInterrupt:用户干扰退出

try & execpt


# try -> else -> finally

try:
      try_suite
except IOError, e:
      do_except
except ValueError, e:
      do_except
else:
    do_else
finally:
    do_finally

with as


with语句实质上是上下文管理

理论知识
上下文管理协议:包含方法:__enter__(),__exit()__

需要注意的是,with语句代码段中,如果出现了异常,那么将无法保证with语句一定能将file关闭。

 try:
      with open(‘test.txt’, ‘r’) as f:
            f.seek(-1, os.SEEKSET)  # 此处会报错,代码意思是找到了文件头部之后的-1的位置,显然不存在。
except ValueError,e:
          handle_except





# 当代码中使用了try-except后,那么with语句在先将文件关闭后,再将error抛出,截获后再对error进行处理。
应用场景
1.文件操作;
2.进程线程之间互斥对象,例如互斥锁;
3.支持上下文的其他对象。

raise & assert


raise XXError(“ErrorInfo”) // python3以后的写法
raise XXError. “ErrorInfo” // python2中的写法,但在2中也支持上面的写法

raise NameError('HiThere')
    Traceback (most recent call last): 
    File "<stdin>", line 1, in 
    NameError: HiThere

assert语句
断言语句:assert语句用于检测表达式是否为真,如果为假,引发AssertionError错误;

assert exception, "errorInfo"

标准异常 & 自定义异常



Paste_Image.png

自定义异常:

// 定义
class FileError(IOError):
      pass

// 触发异常
assert FileError, "file Error!"

try:
     raise FileError, "Test FileError"
except FileError, e:
     print(e)
class CustomError(Exception):
      def __init__(self, info):
            Exception.__init__(self)   # 重写父类方法
            self.errorinfo = info
      def __str__(self):
            return "CustionError:%s" % self.errorinfo

try :
      raise CustomError("test CustomError")
except CustomError, e:
      print(e)   ##

原文链接
相关文章链接

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值