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 

python 捕获异常

 

 

  

     知识点:

      • 执行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 

python 捕获异常

 

  exemple2:

 

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

to exect

python 捕获异常

 

 

  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

python 捕获异常

 

  比较与分析:从示例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 捕获异常

 

 

  

 

 

   

上一篇:Azure SQL Database (23) Azure SQL Database Dynamic Data Masking动态数据掩码


下一篇:阿里系唯一对外开放数据分享平台天池数据集2020收官精品合集大放送