自学内容网 自学内容网

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)!