异常处理

异常处理

什么是异常,其实异常就是我们通常所说的报错。

一、语法异常(错误都是SyntaxError)

if   #SyntaxError
0 = 1  #SyntaxError

二、逻辑异常(错误类型往往是不一样的)

aaa  # NameError

l=['egon','aa']  
l[3]   # IndexError

dic={'name':'egon'}
dic['age']  # KeyError

怎样去解决这样的异常问题的,我们需要对异常进行一个捕捉

1.try……except

基本语法为
try:
    被检测的代码块
except 异常类型:
    try中一旦检测到异常,就执行这个位置的逻辑
print(1)
try:  # 尝试
    num = input('输入一个值')    #dic{[657]}
    dic = {'0': 'a'}
    print(dic[num])    ##dic{[657]}
    dic = {'0': 'a'}

    print(3)  # 代码自上而下,上面会运行
    1 / int(num)  # 错误不影响其他的代码,报错马上终止try缩进里面的代码
    print(4)

except ZeroDivisionError as e:  # 除此之外  # try里面的代码出了什么错误,就得用什么错误捕捉  # as是把错误赋值给e
    print('e:', e)
except KeyError as e:  # 可以写多个except捕捉多个异常
    print('e:', e)

2.这是一个万能的异常Exception,让我们举个栗子

s1 = 'hello'
try:
    int(s1)
except Exception as e:
    print(e)

了解

1.raise 抛出异常

只在创建框架、创建语言的时候有用

print(1)
raise ZeroDivisionError('小可爱,主动抛错干嘛')
print(2)

2.assert 断言

最早的时候没有pycharm,拿这个做调试

a = 1
a += 1
assert a == 3  # 条件成立会跳过,条件错误会报AssertionError错
print(3)

3.finally 最终的

print(1)
try:  # 尝试
    1 / 1
except Exception as e:  # Exception可以捕捉任意异常
    print('e:', e)
finally:  # 最终的意思,无论报不报错都会打印 
    print(3)
posted @ 2019-08-06 17:47  JIAYIYAN  阅读(161)  评论(0编辑  收藏  举报