异常处理

被刻印的时光 ゝ 提交于 2020-01-26 02:18:59

1、异常处理

在程序运行的过程中,总会遇到各种各样的错误。程序如果出错就停止运行,不符合实际需求。为了不让程序出错时停止运行,这时需要捕捉异常。通过捕捉到的异常,做相应的处理。

捕捉异常使用 try... except...关键字。

例如:

first = input('请输入除数:')second = input('请输入被除数:')try:    first = int(first)    second = int(second)    res = first/second# except ValueError as e:  #e代表错误信息#     print(e)#     print('出错了......')# except ZeroDivisionError as e:#     print('除数不能为0')except Exception as e:  #有错误时执行    print(e)    print('出错了')else:    #不是必须写的,是没有错误执行的    print('没有错误')    print(res)finally:    #不管出错 或是没有出错,都会执行,不是必须写    print('我是finally')说明:finally的用法,就是不管出不出异常都执行else:没有出异常时,执行的逻辑二、常见异常信息AttributeError: 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性x
 
IOError:输入/输出异常,一般是无法打开文件
 
ImportError: 无法导入模块或包,一般是路径问题或名称错误
 
IndentationError:代码没有正确对齐,属于语法错误
 
IndexError:下标索引超出序列边界,比如x只有三个元素,却试图访问x[3]
 
KeyError:试图访问字典里不存在的键
 
KeyboardInterrupt:Ctrl+C被按下
 
NameError:使用一个还未被赋予对象的变量
 
SyntaxError: 语法错误
 
TypeError: 传入对象类型与要求的不符
 
UnboundLocalError:试图访问一个还未被设置的局部变量,一般是由于在代码块外部还有另一个同名变量
 
ValueError: 传入一个调用者不期望的值,即使值的类型是正确的
 
三、主动抛出异常
主动抛出异常,就是在代码里面让它自动抛出一个异常,然后捕捉到,比如说我们在写自动化测试脚本的时候,结果和预期不符合,就可以主动抛出一个异常信息,然后捕捉到,做其他的处理,主动抛出异常使用raise关键字
 
try:
    raise KeyError
except KeyError as e:
    print('这是主动抛出的异常捕捉后的处理在这里写')
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!