首页 > 编程语言 >python的异常处理

python的异常处理

时间:2024-07-18 20:54:04浏览次数:18  
标签:Exception Python 语法错误 错误 python 处理 num 异常

文章目录


Python的异常处理机制允许你在程序运行时捕获和处理错误。这对于提高程序的健壮性和用户体验至关重要。Python 使用 try 和 except 语句来捕获和处理异常。你还可以使用 else 和 finally 子句来提供额外的错误处理代码。
Python中的错误可以分为两种:语法错误和异常

  • 语法错误(Syntax errors) :代码编译时的错误,不符合Python语言规则的代码会停止编译并返回 错误信息
  • 异常(Exceptions) :相较于语法错误,异常比较难发现,因为它只在代码运行时才会发生, 如类型错误、数值错误、索引错误和属性错误等
    Python异常类层级

在这里插入图片描述
Python中的主要错误
在这里插入图片描述

语法错误(SyntaxError)

缺少起始符号或结尾符号(括号、引号等)
在这里插入图片描述
缩进错误

series = [1,2,3,4]
for num in series:
    print(num)
     print(num)
#输出结果:
#  File "F:\code\day007.py", line 4
#    print(num)
#IndentationError: unexpected indent

关键词拼写错误

num = 3
prit(num)
#输出结果
#  File "F:\code\day007.py", line 247, in <module>
#    prit(num)
#NameError: name 'prit' is not defined

六种典型的异常

  • 除零错误(ZeroDivisionError):除数为0
  • 名称错误(NameError):变量使用前未进行申明或者初始化
  • 类型错误(TypeError):某些函数或者方法只适用于特定的数据类型,如果 对数据类型的操作不当,就会产生类型错误
  • 数值错误(ValueError):在输入类型正确的情况下,具体输入值错误
  • 索引错误(IndexError):超出序列长度的索引操作
  • 属性错误(AttributeError):方法或者属性不适用该对象

捕获异常

  • 高级语言通常都内置了一套错误处理机制,Python也不例外
  • 在Python中可通过try…except…else…finally…机制捕获异常并进行处理
    在这里插入图片描述
    try…except…else…工作原理
    在这里插入图片描述
    finally子句:无论程序运行对或错,都会执行的部分
    在这里插入图片描述

抛出异常

li1 = [231, 245, -355, 152, 64, 353]
for i in li1:
    v = 100 / i
    print(v)
    if v < 0:
        # 抛出异常
        raise Exception("这里有问题")
    pass
#输出结果:
#  File "F:\code\day007.py", line 175, in <module>
#    raise Exception("这里有问题")
#Exception: 这里有问题
#0.4329004329004329
#0.40816326530612246
#-0.28169014084507044

用户自定义异常

  • 在Python中可以通过创建一个新的异常类来拥有自己的异常

  • 自定义异常的原因
    1.Python提供的内建异常不够用
    2.可以预估某个错误的产生

  • 定义异常类
    异常类继承自 Exception 类,可以直接继承,或者间接继承

class MyError(Exception):
    pass
raise MyError("something error")
#  File "F:\code\day007.py", line 147, in <module>
#    raise MyError("something error")
#__main__.MyError: something error

标签:Exception,Python,语法错误,错误,python,处理,num,异常
From: https://blog.csdn.net/2301_77698138/article/details/140488869

相关文章

  • python中的接口(通过相关的模块实现)
    在Python中,接口通常通过抽象基类(AbstractBaseClasses,简称ABCs)来实现。抽象基类提供了一个机制,用于定义一组方法和属性,这些方法和属性必须在子类中实现。Python提供了abc模块来定义抽象基类。抽象基类(ABCs)定义抽象基类要定义一个抽象基类,需要从abc.ABC继承,并使用a......
  • 在Python中doc转docx,xls转xlsx,ppt转pptx(Windows)
    在Python中doc转docx,xls转xlsx,ppt转pptx(Windows)说明:首次发表日期:2024-07-18参考pypi包:doc2docx缘起我们一般使用Python开发RAG应用,或者使用基于Python开发的开源RAG工具,比如Dify。然而由于Python中对.doc和.ppt格式的文件支持不够好,通常我们需要将文件格式转换为.docx和.p......
  • python中的迭代器
    在Python中,迭代器是一种对象,它实现了迭代协议,即包含方法__iter__()和__next__()。迭代器允许你遍历一个容器(如列表、元组等)中的所有元素,而无需显式地使用索引。理解迭代器的概念和使用可以帮助你编写更高效、可读性更强的代码。迭代器的基本概念迭代器对象:实现了__iter__......
  • 【Azure Function】发布 Python Function 到 Azure 成功,但是无法显示Function列表
    问题描述发布PythonFunction到AzureFunctionApp服务,发布成功后,在Overview页面却无法查看到这个Function,进入Kudu站点,查看FunctionLog,发现错误信息为:"module not found" error:"FailureException:ImportError:libpq.so.5:cannotopensharedobjectfile:Nosuchf......
  • 十天学会Python——第8天:Linux基础
    1Linux基础1.1认识LinuxLinux目录:1Linux系统只有一个根目录/,所有原文件都在它下面2Linux主要目录/:根目录/bin:可执行的二进制文件的目录/etc:系统配置文件存放的目录/home:用户家目录1.2Linux基础命令1.2.1查看目录命令命令说明ls查看当前路径的目录信......
  • XGBoost模型构建+SHAP解析-Python代码——用XGBoost模型实现机器学习并进行黑箱过程解
    一、XGBoost模型简介1.1适用范围XGBoost(ExtremeGradientBoosting)是一个基于梯度提升(GradientBoosting)框架的增强算法,广泛应用于分类、回归、排序等任务。常见的应用包括:信用风险评估销售预测病毒检测图像识别1.2原理XGBoost是梯度提升树(GradientBoostedDecisionTree......
  • 十天学会python——第7天:异常与模块
    1异常1.1认识异常异常语法:try:可能发生错误的代码except:如果出现异常执行的代码try:f=open('test.txt','r')except:f=open('test.txt','w')捕获异常:try:可能发生错误的代码except异常类型:如果捕获到异常执行的代码try:......
  • 决策树模型构建+调参Python代码——用决策树模型实现机器学习
    一、决策树模型简介1.1适用范围决策树模型(DecisionTree)可以用于分类和回归任务,广泛应用于以下领域:客户细分信用风险评估医疗诊断营销策略优化1.2原理决策树是一种树形结构的预测模型,通过一系列的特征测试(即节点的分裂)将数据集逐步划分,从而形成一个树状的决策路径。每个节......
  • Python学习之推导式
    目录一、列表推导式二、集合推导式三、字典推导式四、元组推导式一、列表推导式[expressionforiteminiterableifcondition]介绍:(1)expression:生成元素的表达式。(2)item:可迭代对象中的每个元素。(3)iterable:可迭代对象,如列表、元组、字符串等。(4)condition(可选):筛选......
  • python gradio 的输出展示组件
    HTML:展示HTML内容,适用于富文本或网页布局。JSON:以JSON格式展示数据,便于查看结构化数据。KeyValues:以键值对形式展示数据。Label:展示文本标签,适用于简单的文本输出。Markdown:支持Markdown格式的文本展示。Plot:展示图表,如matplotlib生成的图表。Text:用于显示文本,适合较长的输出。......