异常捕获就是捕获程序有可能出现的异常,防止程序因异常而导致出错或闪退。
一般的结构:
try:执行有可能出错误的代码
except:捕获到具体异常,针对处理(except可以出现多次,最后一个一般都是Exception)
else:如果没有异常就执行
finally:有没有异常都会执行
几种常见的异常:
Exception:所有的异常类的父类,可以捕获所有异常
TypeError:类型异常
ValueError:值异常
ZeroDivision:在运算中除数为0异常
FillNotFound:文件不存在
OperationalError:数据库操作错误
input_values = int(input(f"输入数字"))
input_values1 = int(input(f"输入数字"))
try:
input_data = int(input_values/input_values1)
print(f"正常",input_data)
except ValueError as e:
print(f"值异常",e)
except TypeError as e:
print(f"类型异常",e)
except ZeroDivisionError as e:
print(f"为零异常")
except Exception as e:
print(f"输入异常",e)
在程序运行过程中出现的异常远远不止这些,这时候就需要我们来自己定义一个异常类,这个异常类也需要继承Exception父类:
class LTOne(Exception):
def __init__(self, msg):
super().__init__(msg)
我们还需要手动来触发异常:
raise LTOne("数值小于1")