Python入门到精通

Python基础003--异常捕获、raise和断言的使用

2018-02-24  本文已影响9人  不一样的丶我们

异常捕获、raise和断言的使用

try:
    xxx         # 正常的代码

except xxx:     # 可以写为 except(Exception1[,Exception2[,..Exception3]])
    print "Error: xxx错误
    # 可以写为正常的代码
else:
    print xxx
    
# 异常捕获中嵌套的方式
try:
    xxx
    try:
        xxx
    except:
        xxx
except:
    xxx
else:
    xxx

# 当我们捕获异常之后想要访问它的一些属性的时候,这个时候就可以使用as,
# e相当于是替代前面的错误类型,我们可以用e替代访问它的一些属性
try:
    raise MyError(2*2)
except MyError as e:
    print 'My exception occurred, value:', e.value
    
try:
    xxx
finally:
    xxx
raise
# 自定义一个函数
def mye( level ):
    if level < 1:
        raise Exception("Invalid level!", level)
        # 触发异常后,后面的代码就不会再执行
# 单一表达式/多表达式
a = 10
assert a > 0        # 如果a是小于0的会报错
print('[a = 10] assert a > 0', 'ok')

assert experssion, "arguments"--->这种用法一般是要知道错误在哪

# 尝试捕获assert异常
try:
    assert a < 0
except AssertionError as e:    # 明确抛出此异常
    # 抛出 AssertionError 不含任何信息,所以无法通过ae.__str__()获取异常描述
    print('[AssertionError]', e, e.__str__())

关键字 关键字说明
raise 抛出/引发异常
try/except 捕获异常并处理
pass 忽略异常
as 定义异常实力(except IOError as e)
finally 无论是否出现异常都执行的代码
else 如果try中的语句没有引发异常,则执行else中的语句
上一篇 下一篇

猜你喜欢

热点阅读