1、异常抛出概念
- 异常:程序运行时,如果
python解释器
遇到一些错误,并且提示一些错误信息及其说明- 抛出:程序异常并且提示等动作
2、捕获异常
2.1、最简单的捕获异常方式
-
在程序中捕获异常一般用
try
来捕获 -
最简单捕获方式
try: 异常语法 except: 异常输出
例子:
编写一个不能处0的案例
s1=int(input("请输入一个数字:"))
try:
result = 9 / s1
except:
print("不能为0")
结果:
请输入一个数字:0
不能为0
Process finished with exit code 0
2.2、根据类型捕获异常
-
在程序中我们要根据不同的错误返回不同的信息
代码格式如下:
try: 异常代码 except 异常类型: 提示 except 异常类型: 提示
例子:
try: s1 = int(input("请输入一个数字:")) result = 9 / s1 except ZeroDivisionError: print("不能为0") except ValueError: print("请输入正确的整数")
结果1:
请输入一个数字:a 请输入正确的整数 Process finished with exit code 0
结果2:
请输入一个数字:0 不能为0 Process finished with exit code0
2.3、捕获未知异常
-
在程序中会遇到未知错误,又想让程序运行,所以我们要捕获斌输出
格式:
try: 异常代码 except ZeroDivisionError: 错误提示 except Exception as a: 未知信息
例子:
try: s1 = int(input("请输入一个数字:")) result = 9 / s1 except ZeroDivisionError: print("不能为0") except Exception as a: print(f"错误提示{a}")
结果:
请输入一个数字:a 错误提示invalid literal for int() with base 10: 'a' Process finished with exit code 0
2.4、异常抛出的完整语法
-
实际开发中有些难度,下面为完整的格式
try: 异常代码 except 异常类型: 提示信息 except Exception as a: 提示信息 else: 没有异常代码 finally: 有没有异常都会执行
例子:
try:
s1 = int(input("请输入一个数字:"))
result = 9 / s1
except ZeroDivisionError:
print("不能为0")
except Exception as a:
print(f"错误提示{a}")
else:
print("123")
finally:
print("有没有都会执行")
结果:
请输入一个数字:0
不能为0
有没有都会执行
Process finished with exit code 0
2.5、主动创建异常抛出
- 我们会在程序中设置一些为满足条件就出现异常,终止程序
例子:
输入的年龄大于0且小于100
def getAge():
age = int(input("请输入年龄:"))
if age>0 & age<100:
return age;
ex=Exception("age输入错误")
return ex;
print(getAge())
结果:
请输入年龄:-1
age输入错误
Process finished with exit code 0