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 相关文章推荐
python 获取et和excel的版本号
Apr 09 Python
python 对dataframe下面的值进行大规模赋值方法
Jun 09 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 Python
编写多线程Python服务器 最适合基础
Sep 14 Python
win7 x64系统中安装Scrapy的方法
Nov 18 Python
详解Python基础random模块随机数的生成
Mar 23 Python
python3.5 cv2 获取视频特定帧生成jpg图片
Aug 28 Python
基于python的BP神经网络及异或实现过程解析
Sep 30 Python
如何基于Python实现数字类型转换
Feb 07 Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 Python
Jupyter Notebook 远程访问配置详解
Jan 11 Python
python pygame 开发五子棋双人对弈
May 02 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
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
php-fpm中max_children的配置
2019/03/15 PHP
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
[01:14:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Orenda
2014/05/22 DOTA
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
介绍Python中的fabs()方法的使用
2015/05/14 Python
RC4文件加密的python实现方法
2015/06/30 Python
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
Python实现的HMacMD5加密算法示例
2018/04/03 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
Django实现网页分页功能
2019/10/31 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
python多线程使用方法实例详解
2019/12/30 Python
python爬取本站电子书信息并入库的实现代码
2020/01/20 Python
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
美国轮胎网站:Priority Tire
2018/11/28 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
Zooplus罗马尼亚:宠物食品和配件
2019/11/02 全球购物
小学生防溺水广播稿
2014/01/12 职场文书
求职信模板怎么做
2014/01/26 职场文书
代理班主任的自我评价
2014/02/04 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript