Python教程

python 捕获异常

本文主要是介绍python 捕获异常,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

捕获异常与抛出异常

1 基本异常捕捉语句语法

  try:

    代码模块1

  except:

    代码模块2

  exemple:

1 def print_dict(dic):
2     i = 0
3     try:
4         len1 = len(dic)
5         while i<len1:
6             print(dic.popitem())
7             i+=1
8     except:
9         print("传值类型错误")
 print_dict({1:'a', 2:'b'})
 print_dict([1, 2, 3])

to exect 

 

 

  

     知识点:

      • 执行try语句,代表捕捉异常机制开始
      • 执行代码块1若没有出错,忽略后续except关键字和代码块2,代码正常执行完毕
      • 若执行代码块1发生异常,则终止代码块1内剩余后续代码执行,转到except处
      • except关键字捕捉到异常信息,并执行代码块2(往往给出错误提示或做出错误后的问题处理),异常处理结束。

2 带finally子拒的异常处理

  try:

    代码模块1

  except:

    代码模块2

  finally:

    代码模块3

  说明:finally关键字后的代码模块3,实现代码模块1是否出错都会执行的代码功能

  exemple1:

1 try:
2     1/0
3 
4 except:
5     print("除数不能为0")
6 finally:
7     print("程序运行结束")

to exect 

 

  exemple2:

 

1 try:
2     print(1/2)
3 except:
4     print("除数不能为0")
5 finally:
6     print("程序执行结束")

to exect

 

 

  example3:

1 import sys
2 try:
3     1/0
4 except:
5     print("除数不能为0")
6     sys.exit()
7 finally:
8     print("程序执行结束")
9 print("我能执行吗")

to exect

 

  比较与分析:从示例1和示例2可以看出,无论整除是够出错(try中的代码块是否会出现异常),finally子句后的代码都会执行

        示例3演示了1/3出发异常后,执行except子句里的print和sys.exit(),exit()要求退出该程序,

        在程序退出前强制执行了finally子句的内容,然后再退出程序,没有执行最后一条print语句。

        示例3明确的体现了finally子句的强制性。

 

 抛出异常

1 i = "1"
2 if type(i) != int:
3     raise TypeError("类型错误")

 

 

 

  

 

 

   

这篇关于python 捕获异常的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!