Python学习:18.Python异常处理
一、为什么使用异常处理
当程序运行的时候出现了异常,导致程序终止运行,为了解决这种情况,我们需要预先对可能出现的异常进行处理,一旦出现这种异常,就使用另一种方式解决问题,还有就是错误信息是使用者没有必要看到的,他们不需要知道内部错误的原因,所以我们需要友好的显示错误信息,这就需要用到异常处理。
二、简单异常处理
在以下代码里,首先获取用户输入的值,然后到try代码块里,在try代码块里的代码是收到保护的,如果try中的代码发生了异常,就会执行except中的代码。
在try中的代码,如果某一句出现了错误,则这一句下面的代码就不再执行,直接执行except中的代码。
inp = input('请输入内容:') try: num = int(inp) print(num) except Exception as e: print(e) print('数据类型转换失败!') 输出结果: 请输入内容:aaa invalid literal for int() with base 10: 'aaa' 数据类型转换失败!
三、异常处理分类
在上面的示例中,except后面的Exception是一个包含有错误信息的类,而这个e是创建的Exception的对象,包含着错误信息,比如下面的输出结果。
li = [] inp = input('请输入内容:') li[int(inp)] 输出结果: 请输入内容:aaa Traceback (most recent call last): File "C:/Users/Administrator/PycharmProjects/untitled1/Alexsel/gg.py", line 318, in <module> li[int(inp)] ValueError: invalid literal for int() with base 10: 'aaa'
这里的ValueError就是异常的一种,接下来我们就了解一下Python中的常见的异常。
异常 | 描述 |
---|---|
NameError | 尝试访问一个没有声明的变量 |
ZeroDivisionError | 除数为0 |
SyntaxError | 语法错误 |
IndexError | 索引超出序列范围 |
KeyError | 请求一个不存在的字典关键字 |
IOError | 输入输出错误(比如要读的文件不存在) |
AttrilbuteError | 尝试访问未知的对象属性 |
ValueError | 传给函数的参数类型不正确,比如给int()函数传入字符串 |