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的web框架编写MVC配置来使其运行的教程
Apr 30 Python
PyQt5每天必学之关闭窗口
Apr 19 Python
python实现内存监控系统
Mar 07 Python
详解Django中间件执行顺序
Jul 16 Python
在Django中URL正则表达式匹配的方法
Dec 20 Python
Python TestCase中的断言方法介绍
May 02 Python
python 提取文件指定列的方法示例
Aug 07 Python
Python实现CAN报文转换工具教程
May 05 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
Jul 03 Python
python利用opencv保存、播放视频
Nov 02 Python
Python图像读写方法对比
Nov 16 Python
python里glob模块知识点总结
Jan 05 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获取用户IPv4或IPv6地址的代码
2012/11/15 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
php强制用户转向www域名的方法
2015/06/19 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
2016/04/17 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
详解ES6中的Map与Set集合
2019/03/22 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
Python中处理字符串之isalpha()方法的使用
2015/05/18 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
postman和python mock测试过程图解
2020/02/22 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
将keras的h5模型转换为tensorflow的pb模型操作
2020/05/25 Python
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
土木工程应届生求职信
2013/10/31 职场文书
《蓝色的树叶》教学反思
2014/02/24 职场文书
文明村创建实施方案
2014/03/27 职场文书
白血病募捐倡议书
2014/05/14 职场文书
职工擅自离岗检讨书
2014/09/23 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
开票员岗位职责
2015/02/12 职场文书
大二学年个人总结
2015/03/03 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
元旦晚会主持词开场白
2015/05/28 职场文书
医院见习总结
2015/06/24 职场文书
教师远程培训心得体会
2016/01/09 职场文书
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python