首页 > 编程语言 >Python——异常捕获,传递及其抛出操作

Python——异常捕获,传递及其抛出操作

时间:2024-07-25 22:25:11浏览次数:16  
标签:函数 Python 抛出 捕获 语法 python 异常

01. 异常的概念

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

2. 程序停止执行并且提示错误信息这个动作,我们通常称之为:抛出(raise)异常。

 

程序开发时,很难将所有的特殊情况都处理的面面俱到,通过异常捕获可以针对突发事件做集中的处理,从而保证程序的稳定性和健壮性。 

02. 捕获异常

2.1 简单的捕获异常语法

1. 在程序开发中,如果对某些代码的执行不能确定是否正确,可以增加try(尝试)来捕获异常。

2. 捕获异常最简单的语法格式:

3.  try尝试,下方编写要尝试代码,不确定是否能够正常执行的代码。

4. except 如果不是,下方编写尝试失败的代码。

2.2 错误类型捕获

1. 在程序执行时,可能会遇到不同类型的异常,并且需要针对不同类型的异常,做出不同的响应,这个时候,就需要捕获错误类型了。

2. 语法如下:

3. 当python 解释器抛出异常时,最后一行错误信息的第一个单词,就是错误类型。

捕获未知错误:

        在开发时,需要预判到所有可能出现的错误,还是有一定难度的。 

        如果希望程序无论出现任何错误,都不会因为python解释器抛出异常而被终止,可以再增加一个except。

语法如下:

2.3 异常捕获完整语法

在实际开发中,为了能够处理复杂的异常情况,完整的异常语法如下:

 提示:

        1. 有关完整语法的应用场景,在后续学习中,结合实际的案例会更好理解。

        2. 现在先对这个语法结构有个印象即可。

1. else 只有在没有异常时才会执行的代码。

2. finally 无论是否有异常,都会执行的代码。

03. 异常的传递

1. 异常的传递——当函数/方法执行出现异常,会将异常传递给函数/方法的调用一方。

2. 如果传递到主程序,仍然没有异常处理,程序才会被终止。

提示:

        1.定义函数demo1()提示用户输入一个整数并且返回。

        2.定义函数demo2()调用demo1()

        3.在主程序中调用demo2()

04. 抛出raise异常

 4.1 应用场景

1. 在开发中,除了代码执行出错python解释器会抛出异常之外。

2. 还可以根据应用程序特有的业务需求主动抛出异常。

示例:

        提示用户输入密码,如果长度少于8,抛出异常。

注意:

        1. 当前函数只负责提示用户输入密码,如果密码长度不正确,需要其他的函数进行额外处理。

        2. 因此可以抛出异常,由其他需要处理的函数捕获异常。

标签:函数,Python,抛出,捕获,语法,python,异常
From: https://blog.csdn.net/2301_80269840/article/details/140700924

相关文章

  • Python 多进程下日志打印
    Python多进程下日志打印问题分析使用gunicorn启动Flask时,如果直接使用logging的RotatingFileHandler模块会出现日志混乱,甚至日志丢失的情况。在日志翻转时,可能出现一个进程将log文件翻转,而后又有进程也将log文件翻转,导致log.1文件并未达到设置的最大的文件大小,......
  • python 装饰器执行顺序的代码示例
    defdecoratorA(func):print(33)defwrapperA():print("EnteringA")print(func())print("ExitingA")print(44)returnwrapperAdefdecoratorB(func):print(11)defwrapperB():print("Ent......
  • 自定义IPython启动:打造个性化的交互式编程环境
    自定义IPython启动:打造个性化的交互式编程环境IPython,一个强大的交互式Python解释器,提供了丰富的定制选项,允许用户根据个人或团队的需求定制其行为和外观。设置自定义的启动命令是IPython定制功能的一部分,它可以让你在启动IPython时自动执行一系列操作,如导入模块、设置变量......
  • xml.etree.ElementTree 文档中文翻译; SVG矢量图;Python标准库
    更新中..简介xml.etree.ElementTree实现了一个简洁有效的用于解析和新建XML数据的API。其也被简称为ET。弃用:xml.etree.cElementTree自Python==3.3已被弃用警告:使用时需注意恶意构建的数据,请防范XML漏洞概念XML是一种继承性的分层数据格式,常用树来表示。ET有两个类,Ele......
  • Python--Pandas基础------2
    目录一、导入Excel文件1.导入xlsx文件2.导入csv文件3.head()与tail()4.info()6.shape二、修改变量列1.columns2.rename()三、筛选变量列四、删除变量列五、添加变量列一、导入Excel文件在Pandas中导入Excel文件是一个常见的操作,可以使用read_excel()函数来......
  • 我心中的王者:Python-第9章 字典(Dict)
    我心中的王者:Python-第9章字典(Dict)列表(list)与元组(tuple)是依序排列可称是序列数据结构,只要知道元素的特定位置,即可使用索引观念取得元素内容。这一章的重点是介绍字典(dict),它并不是依序排列的数据结构,通常可称是非序列数据结构,所以无法使用类似列表的数值(0,1,…......
  • Python知识点—math函数,方法全解,细致易懂
    代码中已标明函数的方法以及操作importmathformathsindir(math):ifnotmaths.startswith("__"):#打印math函数的方法,不显示以"__"开头的print(maths)print(math.pi)#π值3.141592653589793#无穷大print(math.inf>99999999999999999999999......
  • 02 Python基础
    变量名的本质就是内存地址i=1b1=2.34b2=Truelist1=[]dic1={}tuple1=()str1=""print(id(i))print(id(b1))print(id(b2))print(id(list1))print(id(dic1))print(id(tuple1))print(id(str1))20860943075682086095348080140707394149224208609......
  • Python 高阶语法
    前言:我们通过上篇文章学习了Python的基础语法,接下来我们来学习Python的高阶语法1.初识对象在Python中我们可以做到和生活中那样,设计表格、生产表格、填写表格的组织形式的面向对象包含3大主要特性:封装继承多态(内容靠后)1.1使用对象组织数据在程序中设计表格,我们......
  • python实现ftpServer
    使用python模拟一个fetServer importosimportsocketimportthreadingfrompyftpdlib.authorizersimportDummyAuthorizerfrompyftpdlib.handlersimportFTPHandlerfrompyftpdlib.serversimportFTPServer_source_root=os.path.dirname(os.path.dirname(os.path......