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编程中实现迭代器的一些技巧小结
Jun 21 Python
python中类变量与成员变量的使用注意点总结
Apr 29 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
python 函数内部修改外部变量的方法
Dec 18 Python
python基于json文件实现的gearman任务自动重启代码实例
Aug 13 Python
Python进程池Pool应用实例分析
Nov 27 Python
python爬取本站电子书信息并入库的实现代码
Jan 20 Python
pytorch中使用cuda扩展的实现示例
Feb 12 Python
零基础学python应该从哪里入手
Aug 11 Python
如何基于pandas读取csv后合并两个股票
Sep 25 Python
Python关于拓扑排序知识点讲解
Jan 04 Python
在pyCharm中下载第三方库的方法
Apr 18 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空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
JavaScript中的关键字"VAR"使用详解 分享
2013/07/31 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
浅析Jquery操作select
2016/12/13 Javascript
Angular2整合其他插件的方法
2018/01/20 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
实例讲解JS中pop使用方法
2019/01/27 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
Python合并多个Excel数据的方法
2018/07/16 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
python2和python3哪个使用率高
2020/06/23 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
营业用房租赁协议书
2014/11/26 职场文书
学生通报表扬范文
2015/05/04 职场文书
python 实现mysql自动增删分区的方法
2021/04/01 Python
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server
springboot用户数据修改的详细实现
2022/04/06 Java/Android