具体网址详见https://www.runoob.com/python/python-exceptions.html

什么是异常?

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。

一般情况下,在Python无法正常处理程序时就会发生一个异常。

异常是Python对象,表示一个错误。

当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。


异常处理

捕捉异常可以使用try/except语句。

try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需在try里捕获它。

语法:

以下为简单的try....except...else的语法:

try:
<语句>        #运行别的代码
except <名字>:
<语句>        #如果在try部份引发了'name'异常
except <名字>,<数据>:
<语句>        #如果引发了'name'异常,获得附加的数据
else:
<语句>        #如果没有异常发生

ry的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。

  • 如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。
  • 如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。
  • 如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。

实例

要求:1.询问年龄;2.年龄小于18岁时,输出"不可以喝酒";3.年龄>=18岁时,不输出结果;4.当未输入数字时,输出“你输入的不是数字”,并要求重新输入年龄。

while True:try:age = int(input('你今年几岁了?'))breakexcept ValueError:print('你输入的不是数字!')if age < 18:print('不可以喝酒噢')

再以一个例子具体呈现一下

这个除法计算器需要包含的报错信息有:输入了非数值(即不属于整数和浮点数)、被除数为零以及变量不存在。

print('\n欢迎使用除法计算器!\n')while True:try:x = input('请你输入被除数:')y = input('请你输入除数:')z = float(x)/float(y)print(x,'/',y,'=',z)break  # 默认每次只计算一次,所以在这里写了 break。except ZeroDivisionError:  # 当除数为0时,跳出提示,重新输入。print('0是不能做除数的!')except ValueError:  # 当除数或被除数中有一个无法转换成浮点数时,跳出提示,重新输入。print('除数和被除数都应该是整值或浮点数!')# 方式2:将两个(或多个)异常放在一起,只要触发其中一个,就执行所包含的代码。# except(ZeroDivisionError,ValueError):#     print('你的输入有误,请重新输入!')# 方式3:常规错误的基类,假设不想提供很精细的提示,可以用这个语句响应常规错误。# except Exception:#     print('你的输入有误,请重新输入!')

Python学习之异常处理相关推荐

  1. python学习总结----异常处理

    python学习总结----异常处理 相关概念- 错误:程序运行之前的语法错误,如:关键字.缩进不齐.括号不成对. - 异常:在程序运行过程中出现的问题,如:除数为0.对象属性不存在等.异常处理- 说 ...

  2. Python学习笔记-异常处理

    异常处理 Python Errors and Exceptions 官方文档 引发异常: 语法: 使用raise 关键字, raise either an exception instance or ...

  3. Python学习13 异常处理机制

    概括 常见的异常 异常处理机制 可以多个异常放在元组里面 一旦产生异常,try后面的语句不会继续执行,会做异常处理 异常使用场景1 close应该放在finally中 异常使用场景2 finally关 ...

  4. 【Python学习笔记】超详细Python快速入门教程(下)

    文章目录 031 变量的作用域 032 递归函数 033 异常处理机制 034 class自定义类 035 object内置类 036 多态 037 特殊方法和属性 038 类的深拷贝和浅拷贝 039 ...

  5. Python学习笔记之类型判断,异常处理,终止程序操作小结

    Python学习笔记之类型判断,异常处理,终止程序操作小结 运行结果: 这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发. 爬虫.数据分析.数据可视化.机 ...

  6. Python学习笔记(十三):异常处理机制

    Python学习笔记(十三):异常处理机制 关于Python的异常处理机制 Python学习笔记(十三):异常处理机制 一.异常处理机制 常见异常类型 二.异常处理 try...except 异常类的 ...

  7. SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理

    SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...

  8. Python学习,约束和异常处理

    一.类的约束 首先,你要清楚,约束是对类的约束,比如,现在你是一个项目经理,然后呢,你给手下的人分活,张三你处理一下普通用户登录,李四你处理一下会员登录,王五已处理一下管理员登录,那这个时候呢他们就开 ...

  9. 【Python学习教程】Python异常处理机制

    文章目录 什么是异常处理,Python常见异常类型(入门必读) Python语法错误 Python运行时错误 Python异常处理机制到底有什么用? Python try except异常处理详解(入 ...

最新文章

  1. Django入门项目实践(中)
  2. Subsequence Hate CodeForces - 1363B(前缀和+dp)
  3. 修改FTP服务器端口后无法访问
  4. 工单发料,退料等一些物料的移动
  5. python调用darknet
  6. 查看 mysql端口 和进程_mysql 端口号(怎么查看mysql的端口号)
  7. 烽火HG680-KA机顶盒 卡开机界面、救砖、强刷失败、ADB教程及固件分享
  8. 泰坦尼克 数据集_Kaggle-泰坦尼克-学习心得(高分容易,理解很难)——第1篇...
  9. 手机谷歌浏览器设置不阻止弹窗弹出
  10. 常用合同范本大全|全部是合同,多学学吧。以后少吃亏。
  11. 浅谈权限设计(从接口权限到数据权限)
  12. java毕业生设计二手物品交易系统计算机源码+系统+mysql+调试部署+lw
  13. springboot中格林尼治时间转指定格式时间
  14. 微信公众平台服务号与订阅号区别详解【有图】
  15. App应用中拨打电话
  16. 打印机与电脑显示不连接到服务器,网络打印机无法连接怎么办?网络打印机设置步骤...
  17. GF( p^n) 伽罗瓦域
  18. Redis 单机集群搭建步骤(五)
  19. Fabric 1.0源代码分析(25) Orderer
  20. 【PHP-CTF】无字母无数字webshell

热门文章

  1. 沙盒软件-软件多开-命令行-运行参数-进程通信-运行和评估
  2. fabric运维监控:prometheus配置热更新
  3. atmega16 c语言编程,ATMEGA16读写iic(24c02) C语言程序 测试通过
  4. linux部分文件自动安装失败,linux下通过脚本文件自动安装虚拟机
  5. 【网友评出的得分最高的100部电影】你有多少部没看过?留着找时间看咯!!
  6. TiDB体系结构之TiDB Server
  7. android 应用强制停止
  8. iSubtitle 3.2.3 视频字幕制作
  9. 从p_json中获得register和index序号的关系
  10. 吴恩达机器学习(二十九)大规模机器学习