当前位置: 首页 > news >正文

python异常

异常

异常的介绍

1) 程序在运行的时候, 如果Python解释器遇到一个错误, 就会停止程序的运行, 并且提示一些错误信息, 这个就是异常

2) 程序停止执行并且提示错误这个动作, 被称之为: 抛出异常(raise)

3) 抛出异常的格式: 异常类型+描述错误信息

例子:ZeroDivisionError: division by zero

捕获异常

概念

1) 程序代码在执行的时候, 如果遇到异常, 程序就会终止, 不会继续执行

2) 需求: 程序遇到异常后, 不会结束, 可以继续执行

3) 实现: 使用异常捕获

1. 基本语法

try:

        可能发生异常的代码

except : # 可以捕获任意类型的异常

        发生了异常的代码

代码: 

# 1. 获取⽤户从键盘输⼊的数据
num = input('请输⼊数字:')
try:# 2. 转换数据类型为整数num = int(num)# 3. 数据转换类型正确时, 输出数据内容print(num)
except:# 4. 数据转换类型错误时, 提示输⼊正确数据print('请输⼊正确的数字')

2. 捕获指定类型的异常

异常的类型很多,针对不同的异常,处理方式不一样

try:

        可能发生异常的代码

except 异常类型1:

        发生异常类型1, 执行的代码

except 异常类型2:

        发生异常类型2, 执行的代码

except ...:

        pass

# 关于发生异常的类型, 可以从报错信息里面获取

代码:

try:num = int(input('请输⼊⼀个整数数字:'))num1 = 8 / numprint(num1)
except ValueError:  #print('输⼊的内容⾮数字,请重新输⼊')
except ZeroDivisionError:print('不能输出数字 0, 请重新输⼊')

3. 捕获未知类型的异常

处理未知异常, 我们可以直接就使用 Exception, 它是所有异常的父类

try:

        可能发生异常的代码

except Exception as 变量: #变量 可以打印出来, 内容时异常的信息

代码:

try:num = int(input('请输⼊⼀个整数数字:'))num1 = 8 / numprint(num1)
except Exception as e:print(f'发⽣了异常, {e}')

4. 异常捕获的完整结构

一般处理异常的流程

try:

        可能发生异常的代码

except 异常类型:

        发生了指定异常执行的代码

exception Exception as e

        发生了其他类型异常执行的代码

else:

        没有发生异常,会执行的代码

finally:

        不管有没有发生异常, 都会执行的代码

案例:

需求

1. 获取⽤户输⼊的数字

2. 判断获取的数字是否整数

3. 如果不是整数, 提示输⼊错误

4. 如果是整数, 则进⼀步判断是奇数还是偶数

5. 最终提示: 程序运⾏结束

方法一: 异常捕获

# 1. 获取⽤户输⼊的数字
num = input('请输⼊数字:')
try:# 2. 判断获取的数字是否整数num = int(num)  # 没有发⽣异常, 说明是整数,如果发⽣异常,说明不是整数
except Exception as e:# 3. 如果不是整数, 提示输⼊错误print("输⼊错误", e)
else:# 4. 如果是整数, 则进⼀步判断是奇数还是偶数if num % 2 == 0:print('偶数')else:print('奇数')# 5. 最终提示: 程序运⾏结束
finally:print('程序运⾏结束')

方式二: 直接使用if判断,字符串.isdigit() 判断数字是否是纯数字,是 纯数字,返回True,不是返回 False

# 1. 获取⽤户输⼊的数字
num = input('请输⼊数字:')
# 2. 判断获取的数字是否整数
if num.isdigit():# 如果是 True, 表示是整数# 类型转换num = int(num)# 4. 如果是整数, 则进⼀步判断是奇数还是偶数if num % 2 == 0:print('偶数')else:print('奇数')
# 3. 如果不是整数, 提示输⼊错误
else:print('输⼊错误')
# 5. 最终提示: 程序运⾏结束
print('程序运⾏结束')

异常传递

异常传递 是Python 一种处理异常的方式, 是指在函数的嵌套调用中, 如果发生了异常, 没有解决, 就会把这个异常传递到函数调用的地方(往上抛), 直到被捕获为止, 如果一直没有捕获, 才会报错, 终止执行

代码:

def test():a = 1 / 0return adef test1():print(test())if __name__ == '__main__':test1()

我们一般在最后的主函数进行异常的捕获

def test():a = 1 / 0return adef test1():print(test())if __name__ == '__main__':try:test1()except Exception as e:print("有异常")

抛出异常

基本意思就是, 我们可以手动创建一个异常, 按照我们自己指定的规则, 如果违反了规则, 就手动抛出异常(根据 应用程序 特有的业务需求 主动抛出异常)

1) 在执行代码的过程中, 之所以会出现异常, 终止代码执行, 是因为 代码执行遇到了 raise 关键字

2) raise 关键字的作用: 抛出异常, 让代码终止

3) 应⽤场景: ⾃⼰书写代码模块,让别⼈使⽤,为了让别⼈按照你的规定使⽤你的代码,你就可以在他不满⾜你条件的情况下,使⽤raise 抛出异常

案例:

1. 定义 input_password 函数,提示用户输入密码

2. 如果用户输入长度 < 8,抛出异常

3. 如果用户输入长度 >=8,返回输入的密码

代码:

def input_password():# 1. 输入用户密码pwd = input("请输入用户名密码: ")# 2. 判断密码长度, 如果密码长度 > 8, 返回密码if len(pwd) > 8:print("密码: ".format(pwd))# 3. 长度不够抛出异常else:raise Exception("长度不够,抛出异常")if __name__ == '__main__':input_password()

http://www.dtcms.com/a/450057.html

相关文章:

  • STM32CubeMonitor使用记录
  • 网站这么做海城seo网站排名优化推广
  • 做网站后的收获宁波seo软件免费课程
  • 网站设计精美案例常见软件开发模型有哪些
  • dedecms 网站还原数据之后 乱码网站开发用什么编程
  • 美发店会员管理软件培训
  • 建设部网站不支持360深圳市南山区住房和建设局网站官网
  • 电子签名法律实务全解析:从合规基础到风险防控的实战指南
  • 1元购网站建设广西壮族自治区市场监督管理局官网
  • 陕西省交通建设集团公司门户网站wordpress站内统计插件
  • PyTorch梯度裁剪与避免Loss为NaN的完整指南
  • 【UE5】新建Editor Standalone Window插件,之前(或当前)创建插件的按钮消失(被顶掉/占用)的问题
  • h5做的网站如何连接数据库wordpress上传图片错误媒体库错误
  • 预约记录关联查询接口说明
  • 免得做网站云浮新增病例详情
  • <从零基础到精通JavaScript>1.1 JavaScript 运行环境
  • 青浦专业网站建设企业网站最下面的那栏叫啥
  • 每日一个C语言知识:C 数据类型
  • 实验二十 GaussDB逻辑备份恢复实验
  • 中英文网站制作wordpress表
  • 开源 网站开发框架seo是一种利用搜索引擎
  • 怎样建设网站空间网站开发中英文版如何写
  • 网站设计怎么收费注册安全工程师条件
  • 5. 逆矩阵
  • 济源专业网站建设(制作网站)网络技术学习网站
  • Redis过期策略与内存淘汰机制解析
  • Transformer(四)---解码器部分实现、输出部分实现及模型搭建
  • 网站开发毕业设计任务书注册推广赚钱一个30元
  • 邯郸网络广播电视台北京网站seo技术厂家
  • leetcode 695 岛屿的最大面积