异常及解决方法

583 阅读2分钟

异常

一 认识异常

在python中,异常程序在执行期间发生的一些错误或异常的情况,也叫bug,例如除以零,访问不存在的变量,不正确的输入等。

让我们来看一下异常代码

print(a)

如下就会报错:

D:\python\python.exe "C:/Users/user/PycharmProjects/pythonProject1/python基础/异常 博客.py" Traceback (most recent call last): File "C:\Users\user\PycharmProjects\pythonProject1\python基础\异常 博客.py", line 1, in print(a) NameError: name 'a' is not defined

a='10'
b=10
print(a+b)

报错如下:

Traceback (most recent call last): File "C:\Users\user\PycharmProjects\pythonProject1\python基础\异常 博客.py", line 3, in print(a+b) TypeError: can only concatenate str (not "int") to str

二 解决异常

遇到如上报错,我们可以用try: except:方法来解决异常。

a='10'
b=10
try:
    print(a+b)
except:
    print(int(a)+b)

总结

异常的处理对于我们后续的逻辑有很多大的帮助,在项目中不会因为个人原因或者网络因素导致系统的崩溃,提升产品的体验度。

让我们来看一下python中有哪些报错

FileNotFoundErvor:文件不存在错误,通常是由于尝试访问不存在的文件导致的。

NameError:名称错误,通常是由于使用了未定义的变量或函数名导致的。

SyntaxError: 语法错误,通常是由于编写的代码存在语法错误导致的。

TypeError:类型错误,通常是由于使用了不兼容的数据类型或函数参数类型不匹配导致的。

MalueError: 值错误,通常是由于传递给函数的参数值不合法导致的。

lndexError: 索引错误,通常是由于尝试访问不存在的索引位置导致的。

KeyError: 键错误,通常是由于尝试访问不存在的键导致的。

ZeroRivisianError: 除以零错误,通常是由于尝试除以零导致的。

AttributeError: 属性错误,通常是由于尝试访问不存在的属性(方法)导致的。

如何捕获指定报错

a='10'
b=10
try:
    print(a+b)
except TypeError:
    print(int(a)+b)

用指定的错误方法来捕获,例如TypeError,nameerror等。

finally

finally是不管报不报错都会执行的。

a='10'
b=10
try:
    print(a+b)
except Exception as e:
    print(e)
finally:
    print('不管报不报错都会执行。')
   

断言

assert断言:强制要求条件满足。

a=1
#如果a不等于2就会报错
assert a==2

报错如下:

Traceback (most recent call last): File "C:\Users\user\PycharmProjects\pythonProject1\python基础\异常 博客.py", line 3, in assert a==2 AssertionError