博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python笔记:错误和异常和访问错误消息
阅读量:4249 次
发布时间:2019-05-26

本文共 1795 字,大约阅读时间需要 5 分钟。

错误和异常

  • 当 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 是所有内置异常的基础类。

转载地址:http://yzwei.baihongyu.com/

你可能感兴趣的文章
如何判断一个对象是否可回收,GC回收对象的过程方式,finilized函数
查看>>
java普通for循环和增强for循环中做集合增删会不会出错?
查看>>
抽象类和接口区别
查看>>
JVM学习之对象内存布局,对象头
查看>>
Python urllib模块访问网络
查看>>
JVM学习之java线程安全&锁优化技术
查看>>
兼容ProgressBar圆形设置颜色
查看>>
git detached HEAD 修改后如何提交修改到其他分支
查看>>
Android获取系统中的其他应用信息
查看>>
Android视频编解码之MediaCodec简单入门
查看>>
Android原始视频格式YUV,NV12,NV21,YV12,YU12(I420)
查看>>
View绘制01-Android渲染系统中的View
查看>>
View绘制02-View生命周期
查看>>
View绘制系列(3)-自定义View简介
查看>>
View绘制系列(5)-Canvas基础图形绘制
查看>>
Android横竖屏切换
查看>>
判断SD是否存在及其容量查询
查看>>
linux查看文本的5+1种方式
查看>>
Linux 查看服务器开放的端口号
查看>>
端口状态说明 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT
查看>>