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实现批量转换文件编码(批转换编码示例)
Jan 23 Python
用Python编写简单的微博爬虫
Mar 04 Python
Django中ORM表的创建和增删改查方法示例
Nov 15 Python
从头学Python之编写可执行的.py文件
Nov 28 Python
使用python实现链表操作
Jan 26 Python
pyspark 读取csv文件创建DataFrame的两种方法
Jun 07 Python
Python中栈、队列与优先级队列的实现方法
Jun 30 Python
解析python的局部变量和全局变量
Aug 15 Python
Python pandas自定义函数的使用方法示例
Nov 20 Python
sklearn的predict_proba使用说明
Jun 28 Python
Python集合的基础操作
Nov 01 Python
python机器学习实现oneR算法(以鸢尾data为例)
Mar 03 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编程中八种常见的文件操作方式
2006/11/19 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
深入PHP magic quotes的详解
2013/06/17 PHP
Thinkphp中的curd应用实用要点
2015/01/04 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
JavaScript及jquey实现多个数组的合并操作
2014/09/06 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
javascript中利用柯里化函数实现bind方法
2016/04/29 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
bootstrap datetimepicker2.3.11时间插件使用
2016/11/19 Javascript
深入理解jQuery.data() 的实现方式
2016/11/30 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
2018/03/05 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
JS Math对象与Math方法实例小结
2019/07/05 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
原生js实现滑块区间组件
2021/01/20 Javascript
Python实现统计英文单词个数及字符串分割代码
2015/05/28 Python
Python设置默认编码为utf8的方法
2016/07/01 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
领导检查欢迎词
2014/01/14 职场文书
监察建议书范文
2014/03/12 职场文书
保密工作目标责任书
2014/07/28 职场文书
先进班组事迹材料
2014/12/25 职场文书
导游词300字
2015/02/13 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书
故意伤害罪辩护词
2015/05/21 职场文书
关于五一放假的通知
2015/08/18 职场文书