python编程Day13-异常介绍&捕获异常&抛出异常
- 异常
- 介绍
1, 程序在运行时, 如果Python解释器遇到到一个错误, 则会停
止程序的执行, 并且提示一些错误信息, 这就是异常.
2, 程序停止执行并且提示错误信息这个动作, 通常称之为: 抛出
(raise) 异常
# f = open('aaaa.txt')
# FileNotFoundError: [Errno 2] No such file or directory: 'aaaa.txt'
# a = 10 / 0
# ZeroDivisionError: division by zero
# b = int('78.1')
# ValueError: invalid literal for int() with base 10: '78.1'
- 捕获异常
1, 程序代码在执行的时候, 如果遇到异常, 程序就会终止,不会
继续执行
2, 需求: 程序遇到异常之后, 不会结束,可以继续执行,
3, 实现需求: 就需要使用 异常捕获
try:
可能发生异常的代码
except: # 可以捕获任意类型的异常
发生了异常执行的代码
# 1. 获取用户从键盘输入的数据
num = input('请输入数字:')
try:
# 2. 转换数据类型为整数
num = int(num)
# 3. 数据转换类型正确时, 输出数据内容
print(num)
except:
# 4. 数据转换类型错误时, 提示输入正确数据
print('请输入正确的数字。')
- 捕获指定类型的异常
发生的异常可能存在多种, 针对不同类型的异常, 解决处理的方
案不一样
try:
可能发生异常的代码
except 异常类型1:
发了异常类型1,执行的代码
except 异常类型2:
发了异常类型2,执行的代码
except .....:
pass
try:
num = int(input('请输入数字:'))
num1 = 10 / num
print(num1)
except ValueError:
print("输入的内容非数字,请重新输入。")
except ZeroDivisionError:
print("不能输入数字 0,请重新输入。")
- 捕获未知类型的异常(使用最多)
try:
可能发生异常的代码
except Exception as 变量: # Exception 常⻅异常类的父类, 变量 异常对象,print()可以打印异常信息
发生异常执行的代码
try:
num = int(input('请输入数字:'))
num1 = 10 / num
print(num1)
except Exception as e:
print(f'发生异常,{e}')
- 异常捕获的完整结构
try:
可能发生异常的代码
except 异常类型1:
发生了指定类型的异常执行的代码
except 异常类型2:
发生了指定类型的异常执行的代码
except Exception as e:
发生了其他类型的异常执行的代码
else:
没有发生异常,会执行的代码
finally:
不管有没有发生异常,都会执行的代码
# # 需求:
# # 1. 获取用户输入的数字
# num = input('请输入数字:')
# try:
# # 2. 判断获取的数字是否整数
# num = int(num)
# except Exception as e:
# # 3. 如果不是整数, 提示输入错误
# print('输入错误。', e)
# else:
# # 4. 如果是整数, 则进一步判断是奇数还是偶数
# if num % 2 == 0:
# print('偶数')
# else:
# print('奇数')
# finally:
# # 5. 最终提示: 程序运行结束
# print("程序运行结束")
#
# 方法二
num1 = input('请输入数字:')
if num1.isdigit():
# 如果是 True,表示是整数
# 类型转换
num1 = int(num1)
# 判断奇偶数
if num1 % 2 == 0:
print('偶数')
else:
print('奇数')
else:
print('输入错误')
print('程序运行结束')
- 异常传递
1, 异常传递 是 Python 中已经实现好的功能, 不需要我们写代
码实现
2, 异常传递是指, 在函数的嵌套调用过程中,如果发生了异常,
没有进行捕获,会将这个异常传递到函数调用的地方, 直到被捕获
为止, 如果一直没有捕获,才会报错,终止执行
# 1、定义函数demo1()提示用户输入一个整数并返回
def demo1():
num = int(input('请输入一个整数:'))
return num
# 2、定义函数 demo2()调用demo1()
def demo2():
num2 = demo1()
# 3、在主程序中调用demo2()
if __name__ == '__main__':
try:
demo2()
except Exception as e:
print(e)
- 抛出异常
1, 在执行代码的过程中,之所以会发生异常,终止代码执行,是因
为 代码执行 遇到了 raise 关键字
2, raise 关键字的作用, 就是来抛出异常,让代码终止执行
3, 应用场景: 自己书写代码模块,让别人使用,为了让别人按照你
的规定使用你的代码,你就可以在他不满足你条件的情况下,使用
raise 抛出异常
原文地址:https://blog.csdn.net/weixin_42421116/article/details/144384985
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!