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中os.path用法分析
Jan 15 Python
python实现根据月份和日期得到星座的方法
Mar 27 Python
python获取本机外网ip的方法
Apr 15 Python
Python闭包的两个注意事项(推荐)
Mar 20 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
详谈python中冒号与逗号的区别
Apr 18 Python
OpenCV+python手势识别框架和实例讲解
Aug 03 Python
python实现任意位置文件分割的实例
Dec 14 Python
详解用Python为直方图绘制拟合曲线的两种方法
Aug 21 Python
使用Python实现正态分布、正态分布采样
Nov 20 Python
详解Python中namedtuple的使用
Apr 27 Python
python 使用pandas读取csv文件的方法
Dec 24 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 parse_url 一个好用的函数
2009/10/03 PHP
php && 逻辑与运算符使用说明
2010/03/04 PHP
php函数之子字符串替换 str_replace
2011/03/23 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
Javascript Memoizer浅析
2014/10/16 Javascript
JS实现在网页中弹出一个输入框的方法
2015/03/03 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
Python谱减法语音降噪实例
2019/12/18 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
如何学习Python time模块
2020/06/03 Python
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
四川成都导游欢迎词
2014/01/18 职场文书
调解协议书
2014/04/16 职场文书
大学自主招生推荐信
2014/05/10 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
具结保证书
2015/01/17 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
从事会计工作年限证明
2015/06/23 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python