python-异常处理

一、若程序中有错误,整个程序将会终止。故用try...excep...捕获异常,不会中断程序

二、作用:

1、尽量让程序正常运行;2、尽早发现问题

三、执行顺序:

1、先执行try子句,当try中的语句正常执行,不会有捕获。except里的语句也不执行。

2、若try中的语句异常,则捕获,剩余下的try子句不再执行,except里的语句执行,except后的语句也执行

try:
    print('111111')
    a = float(input('请输入:'))
    print('222222')
except:
    print('333333')
print('444444')

若没有异常,222222仍会执行,333333不会执行(111111、444444不受影响)执行结果如下

python-异常处理

 若有异常,222222不会执行,333333会执行(111111、444444不受影响)执行结果如下:

python-异常处理

四、常见的异常类型:

1、NameError:变量没定义

2、ValueError:值转换异常,值错误,如:str->float

3、IndexError:索引越界

4、KeyError:键值不存在

5、SyntaxError:语法错误

6、TypeError:类型错误

7、ZeroDivisionError:0不能做除数

注:Exception 万能警察,可捕获所有类型,except后面不写,默认是万能警察,但一般不用

五、格式:

1、try...except...

try:

  可能会出现异常的代码

except 异常类型:

  出现异常时,你会执行的操作

try:
    1/0
except ZeroDivisionError as e:
    print('0不能做除数!',e)

执行结果如下:

python-异常处理一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。一个except子句可以同时处理多个异常,用逗号隔开(元组形式)

最后一个except子句可以忽略异常的名称(可不写异常类型),它将被当作通配符使用。可以使用这种方法打印一个错误信息,然后再次把异常抛出。

2、try...except...else...

try:

  可能会出现异常的代码

except 异常类型:

  出现异常时,你会执行的操作

else:

   没有异常时执行的操作

3、try...except...else...finall...(finall表示不管有没有异常都执行的代码)

try:

  可能会出现异常的代码

except 异常类型:

  出现异常时,你会执行的操作

else:

   没有异常时执行的操作

finall:

  不管有没有异常都会执行的操作

六、抛出异常raise:

格式:raise 异常类型(异常类型提示信息)

raise主动抛出异常,后面的语句不再执行,终止函数运行,return返回也终止。

def add():
    a = input('请输入一个数值:')
    if isinstance(a,str):
        raise ValueError('不能输入非数字!')
    a += 1
    return a
print(add())

 执行结果如下:

python-异常处理

 

上一篇:爬虫与Python:(三)基本库的使用——扩展:异常处理中except的用法和作用是什么


下一篇:《Python安全攻防:渗透测试实战指南》学习二