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 相关文章推荐
netbeans7安装python插件的方法图解
Dec 24 Python
在Python中使用dict和set方法的教程
Apr 27 Python
Python选课系统开发程序
Sep 02 Python
基于Python对象引用、可变性和垃圾回收详解
Aug 21 Python
Python生成器定义与简单用法实例分析
Apr 30 Python
django与小程序实现登录验证功能的示例代码
Feb 19 Python
完美解决pycharm导入自己写的py文件爆红问题
Feb 12 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
python的pip有什么用
Jun 17 Python
Python 连接 MySQL 的几种方法
Sep 09 Python
Python 数据分析之逐块读取文本的实现
Dec 14 Python
一起来学习Python的元组和列表
Mar 13 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
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
深入PHP5中的魔术方法详解
2013/06/17 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
PHP中命名空间的使用例子
2019/03/22 PHP
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
再谈JavaScript线程
2015/07/10 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
AngularJS的脏检查深入分析
2017/04/22 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
[17:45]DOTA2 HEROES教学视频教你分分钟做大人-军团指挥官
2014/06/11 DOTA
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
如何利用Fabric自动化你的任务
2016/10/20 Python
简单谈谈python中的lambda表达式
2018/01/19 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
简单了解python协程的相关知识
2019/08/31 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
学习Python需要哪些工具
2020/09/04 Python
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
linux比较文件内容的命令是什么
2015/09/23 面试题
制药工程专业应届生求职信
2013/09/24 职场文书
英语道歉信范文
2014/01/09 职场文书
办理居住证介绍信
2014/01/15 职场文书
七年级上册生物的课件
2019/08/07 职场文书