一.08异常

一.Python异常类

NameError 尝试访问一个没有申明的变量
ZeroDivisionError 除数为0
SyntaxError 语法错误
IndexError 索引超出序列范围
KeyError 请求一个不存在的字典关键字
IOError 输入输出错误(比如你要读的文件不存在)
AttributeError 尝试访问未知的对象属性
ValueError 传给函数的参数类型不正确,比如给int()函数传入字符串形

二.捕获异常

try:  
    try_suite  
except Exception1,Exception2,...,Argument:  
    exception_suite  
......   #other exception block  
else:  
    no_exceptions_detected_suite  
finally:  
    always_execute_suite  

try…except…语句
try捕获了任何异常,都将交给except子句的exception block来处理
try … except…else语句
就是当没有检测到异常的时候,则执行else语句
finally子句
finally子句是无论是否检测到异常,都会执行的一段代码。我们可以丢掉except子句和else子句,单独使用try…finally,也可以配合except等使用。

三.两个特殊的处理异常的简便方法

1.断言(assert)

assert语句用于检测表达式是否为真,如果为假,引发AssertionError错误;
语法格式:assert expression [,args]
expression:表达式
args:判断条件的描述信息

2.上下文管理(with语句)

with open(r'somefileName') as somefile:
    for line in somefile:
        print line
        # ...more code

四.抛出异常(raise)

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 定义函数
def mye( level ):
    if level < 1:
        raise Exception("Invalid level!", level)
        # 触发异常后,后面的代码就不会再执行

try:
    mye(0)                // 触发异常
except "Invalid level!":
    print 1
else:
    print 2
#输出结果
$ python test.py 
Traceback (most recent call last):
  File "test.py", line 11, in <module>
    mye(0)
  File "test.py", line 7, in mye
    raise Exception("Invalid level!", level)
Exception: ('Invalid level!', 0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值