Python学习笔记之错误和异常及访问错误消息详解


Posted in Python onAugust 08, 2019

本文实例讲述了Python错误和异常及访问错误消息。分享给大家供大家参考,具体如下:

错误和异常

  • 当 Python 无法解析代码时,就会发生语法错误,因为我们没有遵守正确的 Python 语法。
  • 当在程序执行期间出现意外情况时,就会发生异常,即使代码在语法上正确无误。Python 有不同类型的内置异常。

指定异常

可以指定要在 except 块中处理哪个错误,如下所示:

try:
  # some code
except ValueError:
  # some code

现在它会捕获 ValueError 异常,但是不会捕获其他异常。如果我们希望该处理程序处理多种异常,我们可以在 except 后面添加异常元组。

try:
  # some code
except (ValueError, KeyboardInterrupt):
  # some code

或者,如果我们希望根据异常执行不同的代码块,可以添加多个 except 块。

try:
  # some code
except ValueError:
  # some code
except KeyboardInterrupt:
  # some code

处理除以零的案例:

def create_groups(items, num_groups):
  try:
    size = len(items) // num_groups
  except ZeroDivisionError:
    print("WARNING: Returning empty list. Please use a nonzero number.")
    return []
  else:
    groups = []
    for i in range(0, len(items), size):
      groups.append(items[i:i + size])
    return groups
  finally:
    print("{} groups returned.".format(num_groups))
print("Creating 6 groups...")
for group in create_groups(range(32), 6):
  print(list(group))
print("\nCreating 0 groups...")
for group in create_groups(range(32), 0):
  print(list(group))

正确的输出应该是:

Creating 6 groups...
6 groups returned.
[0, 1, 2, 3, 4]
[5, 6, 7, 8, 9]
[10, 11, 12, 13, 14]
[15, 16, 17, 18, 19]
[20, 21, 22, 23, 24]
[25, 26, 27, 28, 29]
[30, 31]

Creating 0 groups...
WARNING: Returning empty list. Please use a nonzero number.
0 groups returned.

访问错误消息

在处理异常时,依然可以如下所示地访问其错误消息:

try:
  # some code
except ZeroDivisionError as e:
  # some code
  print("ZeroDivisionError occurred: {}".format(e))

应该会输出如下所示的结果:

ZeroDivisionError occurred: division by zero

如果没有要处理的具体错误,依然可以如下所示地访问消息:

try:
  # some code
except Exception as e:
  # some code
  print("Exception occurred: {}".format(e))

此处:Exception 是所有内置异常的基础类。

更多Python相关内容感兴趣的读者可查看本站专题:《Python入门与进阶经典教程》、《Python字符串操作技巧汇总》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
运动检测ViBe算法python实现代码
Jan 09 Python
Python中fnmatch模块的使用详情
Nov 30 Python
Python中栈、队列与优先级队列的实现方法
Jun 30 Python
Python 实现加密过的PDF文件转WORD格式
Feb 04 Python
python利用百度云接口实现车牌识别的示例
Feb 21 Python
Django 多对多字段的更新和插入数据实例
Mar 31 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
May 15 Python
Python爬虫headers处理及网络超时问题解决方案
Jun 19 Python
一劳永逸彻底解决pip install慢的办法
May 24 Python
python编程项目中线上问题排查与解决
Nov 01 Python
Python中的datetime包与time包包和模块详情
Feb 28 Python
Python中itertools库的四个函数介绍
Apr 06 Python
Python实现直方图均衡基本原理解析
Aug 08 #Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 #Python
Python 调用 Outlook 发送邮件过程解析
Aug 08 #Python
python判断自身是否正在运行的方法
Aug 08 #Python
Python 日期区间处理 (本周本月上周上月...)
Aug 08 #Python
python各类经纬度转换的实例代码
Aug 08 #Python
Python3.0 实现决策树算法的流程
Aug 08 #Python
You might like
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
php获取post中的json数据的实现方法
2011/06/08 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
jQuery实现倒计时按钮功能代码分享
2014/09/03 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
JS实现文档加载完成后执行代码
2015/07/09 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
Angular2关于@angular/cli默认端口号配置的问题
2017/07/15 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
vue项目中使用vue-i18n报错的解决方法
2019/01/13 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
[01:03:00]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第一局
2016/02/25 DOTA
用python登录Dr.com思路以及代码分享
2014/06/25 Python
Python 多进程和数据传递的理解
2017/10/09 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
详解python内置模块urllib
2020/09/09 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
2020/12/04 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
2021/01/27 Python
python中添加模块导入路径的方法
2021/02/03 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
生产管理的三大手法
2013/11/11 职场文书
我爱我家教学反思
2014/05/01 职场文书
软件测试专业推荐信
2014/09/18 职场文书
2015年仓库工作总结
2015/04/09 职场文书
python turtle绘图命令及案例
2021/11/23 Python