在实际中,很多时候时候,我们并不能保证我们所写的程序是完美的。比如我们程序的本意是:用户在输入框内输入数字,并进行后续数学运算,即使我们提醒了用户需要输入数字而不是文本,但是有时会无意或者恶意输入字符串等我们意料之外的东西,但我们又不想让我们的程序崩溃,Python引入了一种“异常处理”机制,使得我们能够正确的处理这种意外:

比如下面这段代码:想读取文件的内容,但假如所要读取的文件不存在应该怎么办:

 1 def file_read(filename):
 2     try:
 3         with open(filename,'r') as f_obj:
 4             conts = f_obj.read()
 5     except FileNotFoundError:
 6         print("The file '"+filename+"' does not exist!")
 7         #pass
 8     else:
 9         print(conts)
10
11 filenames = ['cats.txt','dogs.txt']
12 for filename in filenames:
13     file_read(filename)
14         

关于代码的具体细节不再描述,仅仅想说明:Python提供了很多的“异常处理”机制,可以方便我们去处理异常情况,暂时不需要记住他们,但需要明白Python具有这样的机制,并且会灵活运用。

转载于:https://www.cnblogs.com/shaonianpi/p/9542615.html

Python学习第十六篇——异常处理相关推荐

  1. python学习[第十四篇] 文件的输入与输出

    python学习[第十四篇] 文件的输入与输出 标准文件类型 一般来说只要程序一执行,就会访问3个文件: 标准输入(键盘) stdin 标准输出(显示器缓冲区) stdout 默认输出到屏幕 标准错误 ...

  2. python学习[第十五篇] 文件系统

    python学习[第十五篇] 文件系统 对文件系统访问大多数都通过os模块实现. os 模块文件/目录访问函数 文件处理 mkfifo() 创建命名通道只用于linux remove(path)/un ...

  3. python学习笔记(十六)-Python多线程多进程

    一.线程&进程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程, ...

  4. Python学习日记(十六) time模块和random模块

    time模块 python表示时间的三种方式:时间戳.元祖(struct_time).格式化时间字符串 三种格式之间的转换: 1.时间戳 就是从1970年1月1日0点0分0秒开始按秒计算的偏移量,时间 ...

  5. 【Python学习系列十六】基于scikit-learn库逻辑回归训练模型(delta比赛代码)

    delta比赛的场景:给定数据样本,设计模型训练预测二分类结果,并通过f1-score评估结果.比赛中对特征抽取.样本扰动.过拟合.强相关特征.归一化等概念有实际的理解和应用. 这里给出的代码是基于逻 ...

  6. Python之路【第十六篇】:Django【基础篇】

    https://www.cnblogs.com/wupeiqi/articles/5237704.html Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django ...

  7. python连载第十五篇~史上最全列表知识源码+答案

    #2017-12-19 19:34:41 December Tuesday the 51 week, the 353 day #python连载第十五篇~list列表#列表定义,访问,索引,操作,切片 ...

  8. 喜迎四十万访问量,自荐十六篇好博文

    喜迎四十万访问量,自荐十六篇好博文 作者:赖勇浩(http://blog.csdn.net/lanphaday) 2008年12月8日本博的访问量一举突破 40 万大关,猛回头,发现已经在 CSDN ...

  9. Python开发【第六篇】:模块

    Python开发[第六篇]:模块 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一 ...

最新文章

  1. svn 邮件通知及LOG处理 强制提交log日志
  2. TripleDES加密解密
  3. Ubuntu上安装显卡驱动
  4. Netty实现自定义协议
  5. python 数据库 实战_干货!python与MySQL数据库的交互实战
  6. IDEA中Git操作
  7. django 多对多表的创建,级联删除,手动创建第三张表
  8. 用完加速器国内的网址打不开了?
  9. 联想win10专业版64位简体中文原版光盘镜像
  10. auto.js启动app
  11. python如何在图片上写字
  12. 高校计算机课程建设研讨会通知,计算机学院承办陕西省高校MOOC与大学计算机课程建设研讨会...
  13. 职场篇:从温水煮青蛙说起
  14. python学习——介绍若干采样算法
  15. h5仿微信支付键盘|仿支付宝数字键盘
  16. CCS使用和调试经验
  17. 微信小程序解码base64
  18. 【蓝桥杯选拔赛真题02】Scratch守护之盾 少儿编程scratch蓝桥杯选拔赛真题讲解
  19. PingCAP DevCon 2021 万字长文回顾:预见数据技术的未来生态
  20. 用echarts实现柱形图、折线图、堆积图的闪烁效果

热门文章

  1. ROS2学习(三).ROS2环境配置
  2. kettle mysql 分页_kettle 分页抽数
  3. LINUX前期知识回顾
  4. ant文件放在ps的哪里_ant design vue按需导入icons
  5. mysql upload_关于mysql数据库里的 upload子查询问题
  6. 数学--数论--随机算法--Pollard Rho 大数分解算法(纯模板带输出)
  7. Servlet容器中web.xml配置context-param与init-param
  8. 【边缘检测】RCN:Object Contour and Edge Detection with RefineContourNet
  9. pytorch实现文本分类_使用变形金刚进行文本分类(Pytorch实现)
  10. 大家都说 Java 反射效率低,你知道原因在哪里么