一篇文章了解python常见内置异常报错

2020-09-01 15:31:45 浏览数 (1)

我们在写python程序的时候经常会遇到一些报错信息(异常),有一些可能是人为进行的定义,有一些则是python内置的一些异常信息,接下来我们来了解一下这些常见的异常一些,也能够在我们遇到问题的时候能够更好更快的定位到问题。

SyntaxError

SyntaxError是非常常见的一种问题,一般我们也能很快看出来,这是python的语法错误,是指我们写的代码语法错了,一般的编译工具也会给出错误提示,很好定位并改正。

代码语言:javascript复制
if 5>2;
print(True)
---------------------------------------------
>>>    if 5>2;
>>>          ^
>>>SyntaxError: invalid syntax

NameError

NameError是指某个变量在python中未进行定义错误,所以代码无法识别出这个变量是什么,就好比每个人都需要有户口,身份证一样,否则别人不能够明确认识到你。

代码语言:javascript复制
print(a)
------------------------------------------------
>>>    print(a)
>>>NameError: name 'a' is not defined

TypeError

类型错误,python有几种基础的数据类型,每种类型有各自的一些特殊用法,不能够张冠李戴,在使用某种方法的时候,注意这种数据类型是否支持。

代码语言:javascript复制
a = '123'
print(a 1)
-----------------------------------------------------
>>>    print(a 1)
>>>TypeError: must be str, not int
代码语言:javascript复制
IndentationError缩进错误,严格意义来说这也属于语法错误的一种,但是比较常见,pyhon不同于java,语法格式需要缩进空格,缩进空格字符不对应则会报这个错误。
代码语言:javascript复制
if 5>2:
print(True)
--------------------------------------------
>>>    print(True)
        ^
>>>IndentationError: expected an indented block

IndexError

索引错误,经常可能出现我们在读取列表某个下标的元素的时候发生的一些错误。例如如下,索引最大为3,此时索引为3,则数组超标的错误。

代码语言:javascript复制
list1 = ['a','b',3]
print(list1[3])
--------------------------------------------
>>>    print(list1[3])
>>>IndexError: list index out of range

FileNotFoundError

找不到文件错误,即当我们读取或者操作某文件时,我们定义的路径下并没有此文件。

代码语言:javascript复制
f = open(r'E:Pythonseleniumreadmine.txt','r')
-------------------------------------------------
>>>    f = open(r'E:Pythonseleniumreadmine.txt','r')
>>>FileNotFoundError: [Errno 2] No such file or directory: 'E:\Python\selenium\readmine.txt'
代码语言:javascript复制
ModuleNotFoundError

导包错误,导入一个不存在的包。

代码语言:javascript复制
import oss
----------------------------------------------
>>>    import oss
>>>ModuleNotFoundError: No module named 'oss'

KeyError

映射中键错误,例如一个字段,读取一个不存在的key。

代码语言:javascript复制
dict1 = {'a':1,'b':2}
print(dict1['c'])
---------------------------------------------
>>>    print(dict1['c'])
>>>KeyError: 'c'

ValueError

映射中值错误,调用一个不存在的值。

代码语言:javascript复制
str1 = 'abcde'
print(str1.index('f'))
-----------------------------------------------------
>>>    print(str1.index('f'))
>>>ValueError: substring not found

AttributeError

属性错误,调用对象不存在的一个方法属性时将报这个错误。

代码语言:javascript复制
str1 = 'abcde'
print(str1.append('f'))
----------------------------------------------------
>>>    print(str1.append('f'))
>>>AttributeError: 'str' object has no attribute 'append'

UnicodeDecodeError

解码错误,这种错误经常在读取文件时报错。

代码语言:javascript复制
f = open(r'./readmine.txt','r',encoding='gbk')
print(f.readlines())
-----------------------------------------------
>>>    print(f.readlines())
>>>UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 14: illegal multibyte sequence

历史文章推荐:

软件测试工程师应该被尊重!

API测试| 了解API接口测试| API接口测试指南

Fiddler工作原理

python中常见关于Excel表格读写操作

遇到一个新项目怎么办,不要慌,乘风破浪!

0 人点赞