什么是异常?

异常顾名思义就是不正常的情况,比如说用一个数去除以0,就是一个不正常的情况:

例子中用1除以0,结果出现了异常ZeroDivisionError。出现异常后程序就崩溃了,对于用户而言最不喜欢看到的就是程序崩溃了。因此处理异常是一件十分必要的事情。

基本的异常处理

python处理异常的基本结构如图所示:

异常处理的代码结构由try和except,可以理解为尝试运行try底下的代码,如果捕捉到except后面指定的异常类型,则在底下进行相应的处理。处理了异常程序就不崩溃了(除非你手贱,在处理异常的地方又写错了代码)。except可以有多个用于捕获不同类型的异常。

带else的异常处理

异常处理后面可以加else。如果没有捕捉到异常那么就会执行else后面的代码:

else的用法应该很好理解。但是这里所说的没有捕捉到异常并不代表一定就没有异常,而是没有捕捉到你except后面的异常,换句话说只是没有执行你的except而已。

带finally的异常处理

在异常处理的结构中,不管是不是捕捉到异常,finally底下的代码始终都会执行,即使没有处理异常程序崩溃了它都要执行:

finally很适合用来收尾工作,比如在try中打开了一个excel文档,然后在后面的执行中可能出现了异常崩溃了,这时excel文档就会处于锁定的状态。这种情况就可以在finally中执行关闭excel的操作。

手动抛出异常

手动抛出异常在学些迭代器的时候时已经见识过了,当时为了防止迭代器访问越界,手动抛出了StopIteration的异常。这里还是延续上面的例子进行说明:

只要使用raise就能抛出异常了,抛出异常后面的代码将不再执行。

自定义异常

python已经内置了很多的异常类型,但有时我们还是有自己特殊的需求。那就自定义异常吧。自定义异常的方式就是从内置的异常类中派生一个类来扩展自己的需求,举个例子:

只要学会了python的类,是不是自定义异常类就变得很简单了?

expec不管异常 try_python3基础之异常处理(通俗易懂)相关推荐

  1. c mysql异常捕获异常,c#基础之异常处理及自定义异常 从SQLServer转储数据到MySQL...

    一.什么是c#中的异常? 异常是程序运行中发生的错误,异常处理是程序的一部分.c#中的异常类主要是直接或者间接的派生于 System.Exception类 ,也就是说System.Exception类 ...

  2. 【转载】Java异常控制机制和异常处理原则

    转载自Java异常控制机制和异常处理原则 Java异常控制机制又被称为"违例控制机制". 捕获程序错误最理想的时机是在编译阶段,这样可以彻底避免错误的代码运行.但并非所有的错误都能 ...

  3. java 异常_Java 进阶之异常处理

    本文的主要内容分为 Java 异常的定义.Java 异常的处理.JVM 基础知识(异常表.JVM 指令分类和操作数栈)及深入剖析 try-catch-finally 四部分(图解形式).在深入剖析 t ...

  4. Python全栈工程师(异常(基础))

    ParisGabriel 每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰   Python人工智能从入门到精通 补充:包的相对导入 只对后两种导入方式有用  前两次改进的学生管理系统在20 ...

  5. JAVA捕捉输入格式异常_Java学习(四).异常处理

    异常处理 任何一个软件或程序都可能在运行的过程中出现故障,问题的关键是故障出现以后如何处理?谁来处理?怎样处理?处理后系统能否恢复正常的运行?本章在介绍Java处理这类问题基本方法的基础上,讨论包含异 ...

  6. Python基础:异常处理

    Python基础:异常处理 一,学习的内容 Python 异常处理 异常就是运行期检测到的错误.计算机语言针对可能出现的错误定义了异常类型,某种错误引发对应的异常时,异常处理程序将被启动,从而恢复程序 ...

  7. kotlin协程硬核解读(5. Java异常本质协程异常传播取消和异常处理机制)

    版权声明:本文为openXu原创文章[openXu的博客],未经博主允许不得以任何形式转载 文章目录 1. 异常的本质 1.1 操作系统.程序.JVM.进程.线程 1.2 异常方法调用栈 1.3 ja ...

  8. python基础之异常处理

    python基础之异常处理 参考文章: (1)python基础之异常处理 (2)https://www.cnblogs.com/zhangyux/p/6108026.html (3)https://w ...

  9. python 异常分类_python的异常处理

    1. 异常 2. 异常种类 3. 异常处理 1. 异常 异常就是程序运行中发生的错误信号,如程序产生问题,而没有处理它,程序运行就将停止,py中错误触发的异常如下 2.异常种类 一般异常 Attrib ...

最新文章

  1. 【怎样写代码】工厂三兄弟之抽象工厂模式(六):扩展案例II
  2. 父窗口jquery触发iframe按钮事件(转载)
  3. Linux运维工程师必学必备的8项IT技能
  4. 写给深圳首期Python自动化开发周未班的信
  5. mysql设置不区分大小写
  6. linux tomcat 改端口号,Ubuntu中Tomcat更改80端口
  7. (转)C# 控制蜂鸣器发声
  8. Java语法基础学习DayNineteen(反射机制)
  9. CSS去除链接虚线(兼容IE6、IE7)
  10. 营业执照生成_0跑动,3步注册,48小时拿证!金山发出首张全程电子化登记营业执照!...
  11. Linux架设DNS服务器(ChinaITLab.com 搜集整理)
  12. MessageBox--获知点击确认还是取消?
  13. 想让Word文档更整齐,这五个Word排版技巧少不了
  14. linux下回收站无法清空 解决
  15. 微信抢票应用个人总结
  16. PMSM学习笔记1——永磁同步电机的工作原理与数学模型
  17. canvas像素操作、save与restore、合成与变形
  18. unity3d中隐藏/显示物体方法总结 – unity3d游戏开发
  19. 插图 引用 同一行两个插图_案例研究产品设计中的动画插图
  20. bfv同态加密_同态加密简明教程

热门文章

  1. 把ct图像像素值转化为_数字图像概论与基础
  2. 将特定像素点在图像上连接起来_(NeurIPS 2019) Gated CRF Loss-一种用于弱监督图像语义分割的新型损失函数...
  3. php 如何得到 file_get_contents 数据,如何使用file_get_contents在PHP中发布数据?
  4. 企业生产过程中的日志和时间管理详解
  5. 用单片机测量流体流速的_流量计是测量液体、气体流量仪表原理安装
  6. jfinal里使用ajax,Jfinal解决AJAX的跨域请求
  7. td不显示边框_FANUC Series 0i Mate-TD系统上电显示SP1241 (S)D/A变换器异常维修,FANUC主板SP1_维修中心...
  8. java stringbuffer 转数组_JAVA之旅(十七)——StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder...
  9. java socket编程 select_windows socket编程select模型使用
  10. python 代码转成 c_如何将此C代码转换为Python?