广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python异常处理实例分析
  • 569
分享到

Python异常处理实例分析

2023-07-02 14:07:37 569人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要讲解了“python异常处理实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python异常处理实例分析”吧!那么什么是异常呢?举个例子:这里当然假设用户的输入是正确的,但

这篇文章主要讲解了“python异常处理实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python异常处理实例分析”吧!

那么什么是异常呢?举个例子:

Python异常处理实例分析

这里当然假设用户的输入是正确的,但是只要用户输入一个不存在的文件名,那么上面的代码是不堪一击的:

Python异常处理实例分析

上面的例子就抛出了一个FileNotFoundError异常,那么Python还可能抛出哪些异常呢,在下面给大家介绍一下常见的异常,这样以后遇到这样的异常时就不会感到陌生了。

一、常见的Python异常

AssertionError断言语句(assert)失败

在以前的分支和循环章节中讲过断言语句(assert),当assert这个关键字后边的条件为假的时候,程序将终止并抛出AssertionError异常。assert语句一般是在测试程序的时候用于在代码中置入检查点:

Python异常处理实例分析

AttributeError:尝试访问未知的对象属性

当试图访问的对象属性不存在时抛出的异常:

Python异常处理实例分析

IndexError:索引超出序列的范围

在使用序列的时候就常常会遇到IndexError异常,原因是索引超出序列范围的内容

Python异常处理实例分析

KeyError:字典查找一个不存在的关键字

试图在字典中查找一个不存在的关键字时就会引发KeyError异常,因此建议使用dict.get()方法

Python异常处理实例分析

NameError:尝试访问一个不存在的变量

尝试访问一个不存在的变量时,Python会抛出NameError异常:

Python异常处理实例分析

OSError:操作系统产生的异常

OSError顾名思义就是操作系统产生的异常,像打开一个不存在的文件会引发FileNotFoundError,而这个FileNotFoundError就是OSError的子类。上面的例子已经演示过,这里就不再赘述了。

SyntaxError:Python的语法错误

如果遇到SyntaxError是Python的语法错误,这时Python的代码并不能继续执行,你应该找到并改正错误:

Python异常处理实例分析

TypeError:不同类型间的无效操作

有些类型不同是不能相互进行计算的,否则会抛出TypeError异常:

Python异常处理实例分析

ZeroDivisionError:除数为零

我们都知道除数不能为零,所以除以零就会引发ZeroDivisionError异常:

Python异常处理实例分析

二、try-except语句

try-except语句格式如下:

try:
  检测范围
except Exception[as reason]:
  出现异常(Exception)后的处理代码

try-except语句用于检测和处理异常,举个例子来说明这一切是如何工作的。

前面我们也介绍过,当要打开的文件不存在时,就会引发FileNotFoundError,显然用户的体验不好,因此我们可以这样修改:

Python异常处理实例分析

其执行结果是:

Python异常处理实例分析

上面的例子由于使用了大家习惯的语言来描述错误信息,用户体验会好很多。

但是从程序员的角度来看,导致OSError异常的原因有很多(例如FileNotFoundError、FileExistsError、PermissionError等),所以可能会更在意错误的具体内容,这里可以使用as把具体的错误消息打印出来

Python异常处理实例分析

其执行结果为:

Python异常处理实例分析

针对不同异常设置多个except

一个try语句可以和多个except语句搭配,分别对感兴趣的异常进行检测处理:

Python异常处理实例分析

三、对多个异常统一处理

except后面还可以跟多个异常,然后对这些异常进行统一的处理:

Python异常处理实例分析

四、捕获所有异常

如果你无法确定要对哪一类异常进行处理,只是希望在try语句块里一旦出现任何异常,可以给用户一个“看得懂”的提醒,那么可以这么做:

Python异常处理实例分析

五、try-finally语句

看下面这个例子,如果"a.txt"确实存在,open()函数可以正常返回文件对象,但异常却发生在打开文件后的sum = 1 + ‘1’语句上,此时Python将直接跳到except语句,也就是说,文件打开了,但并没有执行关闭文件的命令:

Python异常处理实例分析

为了实现这种“就算出现异常,但也不得不执行的收尾工作(比如在程序崩溃前保存用户文档)”,引入了finally来扩展try:

Python异常处理实例分析

如果try语句块中没有出现任何运行时错误,会跳过except语句执行finally语句块的内容。
如果出现异常,则会先执行except语句块的内容再执行finally语句块的内容。
总之,finally语句块中的内容就是确保无论如何都将被执行的内容。

六、raise语句

有些读者可能会思考,我的代码能不能自己抛出一个异常呢?答案是可以的,你可以使用raise语句抛出一个异常

Python异常处理实例分析

抛出的异常还可以带参数,表示异常的解释

Python异常处理实例分析

七、丰富的else语句

对于绝大多数编程语言来说,else语句都只能跟if语句搭配,但是在Python里,else语句的功能更加丰富。在Python中,else语句不仅能跟if语句搭,跟循环语句(for语句或while语句)搭配,还能跟刚才所讲的异常处理进行搭配

1、典型的if-else语句

if 条件:
  条件为真执行
else:
  条件为假执行

2、else与for和while循环语句搭配

举个例子:

Python异常处理实例分析

这段程序主要是求用户输入的数的最大约数,如果是素数的话会提醒这是一个素数。
使用暴力的方法一个个尝试(num%count==0),如果符合条件则打印出最大的约数,并break,同时不会执行else语句块的内容了。但如果一直没有遇到合适的条件,则会执行else语句块内容。

for语句的用法和while语句一样,这里便不再赘述了。

3、else语句与异常处理进行搭配

else语句还能和刚刚讲的异常处理进行搭配,只要try语句块里没有出现任何异常,那么就会执行else语句块里的内容

举个例子:

Python异常处理实例分析

八、简洁的with语句

有些读者觉得打开文件又要关闭文件,还要关注异常处理有点麻烦,所以Python提供了一个with语句,利用这个语句抽象出文件操作中频繁使用的try/except/finally相关的细节,对文件操作使用with语句,将大大减少代码量。

举个例子:

Python异常处理实例分析

使用with语句,可以改成这样:

Python异常处理实例分析

有了with语句,就再也不用担心忘记关闭文件了。

感谢各位的阅读,以上就是“Python异常处理实例分析”的内容了,经过本文的学习后,相信大家对Python异常处理实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Python异常处理实例分析

本文链接: https://www.lsjlt.com/news/342425.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python异常处理实例分析
    这篇文章主要讲解了“Python异常处理实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python异常处理实例分析”吧!那么什么是异常呢?举个例子:这里当然假设用户的输入是正确的,但...
    99+
    2023-07-02
  • Python中的异常处理实例分析
    一、什么是异常在python中,错误触发的异常如下二、异常的种类在python中不同的异常可以用不同的类型去标识,一个异常标识一种错误。1 、常用异常类AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有...
    99+
    2023-05-16
    Python
  • Python异常处理举例分析
    这篇文章主要讲解了“Python异常处理举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python异常处理举例分析”吧!异常处理在项目开发中,异常处理是不可或缺的。异常处理帮助人们d...
    99+
    2023-06-02
  • python中with和异常处理实例分析
    这篇“python中with和异常处理实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python中with和异常处理...
    99+
    2023-06-27
  • Python异常处理的方法实例分析
    这篇文章主要介绍了Python异常处理的方法实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python异常处理的方法实例分析文章都会有所收获,下面我们一起来看看吧。什么是异常与异常处理异常 &m...
    99+
    2023-06-29
  • Python中的Selenium异常处理实例分析
    本篇内容介绍了“Python中的Selenium异常处理实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在进行爬虫爬取淘宝商品信息时候...
    99+
    2023-06-30
  • SpringBoot中异常处理实例分析
    这篇文章主要介绍“SpringBoot中异常处理实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot中异常处理实例分析”文章能帮助大家解决问题。一、背景在我们编写程序的过程中,...
    99+
    2023-06-30
  • 分析Python异常处理
    本篇内容主要讲解“分析Python异常处理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析Python异常处理”吧!  “你不可能总是对的”  甚至计算机也会有失误的时候。当然程序员也不例外,...
    99+
    2023-06-01
  • Python异常处理机制的示例分析
    这篇文章将为大家详细讲解有关Python异常处理机制的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是异常?def num(a, b):   ...
    99+
    2023-06-22
  • Java异常处理机制实例分析
    这篇文章主要介绍“Java异常处理机制实例分析”,在日常操作中,相信很多人在Java异常处理机制实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java异常处理机制实例分析”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-29
  • python异常时语句处理的示例分析
    这篇文章给大家分享的是有关python异常时语句处理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌...
    99+
    2023-06-14
  • C#中类的异常处理实例分析
    今天小编给大家分享一下C#中类的异常处理实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言日常编码过程中,最重要的技...
    99+
    2023-06-29
  • Python异常断言实例分析
    本篇内容介绍了“Python异常断言实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!断言是判断一个表达式,在表达式为 False 的时...
    99+
    2023-06-29
  • MySQL异常处理的示例分析
    这篇文章给大家分享的是有关MySQL异常处理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。针对存储过程 、触发器或函数内部语句可能发生的错误或警告信息,需要进行相关异常...
    99+
    2022-10-18
  • C语言异常处理机制实例分析
    本篇内容主要讲解“C语言异常处理机制实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言异常处理机制实例分析”吧!异常处理机制:setjmp()函数与l...
    99+
    2022-10-19
  • React16中异常处理的示例分析
    这篇文章主要介绍React16中异常处理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!异常处理在 React 15.x 及之前的版本中,组件内的异常有可能会影响到 Reac...
    99+
    2022-10-19
  • Java中异常处理的示例分析
    这篇文章主要介绍Java中异常处理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!异常的定义在java中,异常就是java在编译、运行或运行过程中出现的错误总共有三种:1.编译错误 2.运行错误 3.逻辑错误...
    99+
    2023-06-25
  • Go语言异常处理的示例分析
    这篇文章主要为大家展示了“Go语言异常处理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Go语言异常处理的示例分析”这篇文章吧。异常处理程序运行时,发生的不被期望的事件,它阻止了程序按...
    99+
    2023-06-20
  • YII2全局异常处理的示例分析
    这篇文章主要介绍了YII2全局异常处理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。首先,我们必须理性认识到,任何一个即使稳定的系统中也是存在着大量的 bug,不管...
    99+
    2023-06-14
  • Java异常处理机制的示例分析
    这篇文章给大家分享的是有关Java异常处理机制的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.初识异常我们在写代码的时候都或多或少碰到了大大小小的异常,例如:public class&nbs...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作