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中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
简单易懂的python环境安装教程
Jul 13 Python
python的unittest测试类代码实例
Dec 07 Python
使用Python进行AES加密和解密的示例代码
Feb 02 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 Python
Python多线程同步---文件读写控制方法
Feb 12 Python
这可能是最好玩的python GUI入门实例(推荐)
Jul 19 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
Aug 22 Python
Python SSL证书验证问题解决方案
Jan 13 Python
Python中使用Lambda函数的5种用法
Apr 01 Python
Python手拉手教你爬取贝壳房源数据的实战教程
May 21 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 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
Javascript 刷新全集常用代码
2009/11/22 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
关于js new Date() 出现NaN 的分析
2012/10/23 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
Javascript Memoizer浅析
2014/10/16 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
JavaScript canvas基于数组生成柱状图代码实例
2020/03/06 Javascript
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
详解在Python中处理异常的教程
2015/05/24 Python
Django中使用group_by的方法
2015/05/26 Python
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
Python 监测文件是否更新的方法
2019/06/10 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
Python解析json代码实例解析
2019/11/25 Python
基于Django实现日志记录报错信息
2019/12/17 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
速卖通欧盟:Aliexpress EU
2020/08/19 全球购物
党员一句话承诺大全
2014/03/28 职场文书
小学优秀教师材料
2014/12/15 职场文书
故宫英文导游词
2015/01/31 职场文书
幼师个人总结范文
2015/02/28 职场文书