python的捕获异常
程序在运行时,如果python解释器遇到一个错误,则会停止程序的执行,并且提示一些错误信息,这就是异常。
程序停止执行并且提示错误信息,称之为抛出异常。
因为程序遇到错误会停止执行,有时候我们希望抛出错误,但是不影响程序继续执行,就可以使用捕获异常来实现。
基本语法关键字,try...except
try 后面写程序正常执行的代码,如果有错误,会执行except中的代码,并不会停止执行。所以,我们把错误处理的代码写在except中即可捕获异常。
代码示例:
num = input('请输入数字')
try:
num = int(num)
print(num)
except:
print('您输入的内容不符合规则')
注意:
如果输入的是正确的内容,则不会执行except里面的代码。
如果输入的是错误的内容,会执行except中的代码,程序也不会标红报错终止执行。
捕获指定类型的异常
代码出现异常的情况有多种,针对不同的异常,处理异常要有不同的方式。
针对这种情况,可以使用捕获指定异常来实现。
语法是在expcet 后面,写异常的类型,通过多个except去捕获不同的异常。
代码示例:
try:
num1 = input('请输入被除数')
num2 = input('请输入除数')
num3 = int(num1) / int(num2)
print(num3)
except ValueError:
print('请输入数字,不能输入其他内容')
except ZeroDivisi:
print('除数不能为0')
注意:
错误类型非常多,没有必要一个一个去记,我们可以看python错误的时候抛出的异常,再对应去处理即可
捕获未知类型的异常
其实在开发中我们比较常用的,还是捕获未知类型异常这种用法。通过异常的父类Exception去实现
展开全文
代码示例:
try:
num1 = input('请输入被除数')
num2 = input('请输入除数')
num3 = int(num1) / int(num2)
print(num3)
except Exception as e:
print(f'捕获到错误:{e}')
注意:
1as 后面的变量是错误对象,通过print可以打印出错误类型信息
2如果我们想要抛出异常的话,可以使用raise Exception(msg)。msg是异常错误信息。
3 python内部实现了异常传递,在函数内部发生的异常会不断向上传递,直到主程序仍然没有捕获,才会抛出异常。