Python-异常处理

图片来源于网络

在日常的程序开发当中,我们肯定是会遇到一些异常的。Python有提供异常处理的方式——try/except,这篇博客就来分享一下使用方式。

try/except语法

try:
  # 执行代码
except :
  # 发生异常执行的代码

try执行步骤如下:

  • 首先执行try子代码块(在关键字 try 和关键字 except 之间的语句);
  • 如果没有异常发生,忽略 except 子句,try 子代码块执行后结束;
  • 如果在执行 try 子代码块的过程中发生了异常,那么try子代码块剩下的部分将被忽略。如果异常的类型和except之后的名称相符,那么对应的except子代码块将被执行。
  • 如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try 中。

在编写代码的过程中,一个try可能会有多个except子代码块,用来区分处理不同的异常情况。

代码示例

import sys

try:   
    f = open('myfile.txt')    
    s = f.readline()   
    i = int(s.strip())
except OSError as err:    
    print("OS error: {0}".format(err))
except ValueError:    
    print("Could not convert data to an integer.")
except:    
    print("Unexpected error:", sys.exc_info()[0])    
    raise

这个例子是以Python读写文件为例,分为三种情况,OS异常、参数异常、未知异常。

try/except...else语法

这个语法是try/except的升级版本,else子代码是可选的语句,但是必须放在try/except的后面。

try:
  # 执行代码
except :
  # 发生异常执行的代码
else:
  # 没有异常时执行的代码

try-finally 语法

try-finally语法无论是否发生异常都将执行最后的代码,我个人认为是try/except...else的升级版。具体如下:

try:
  # 执行代码
except :
  # 发生异常执行的代码
else:
  # 没有异常时执行的代码
finally :
  # 不管有没有异常都会执行的代码
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。