一般情况下,在Python无法正常处理程序时就会发生一个异常。

当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 

1.异常处理

捕捉异常可以使用try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需在try里捕获它。 

1 try:  #尝试运行代码
 2     xxxx
 3 except Exception as e:  #发生异常执行(所有异常都可以捕捉)
 4     xxxx
 5 else:  #不出异常执行
 6     xxxx
 7 finally:  #无论是否发生异常都将执行最后的代码
 8     xxxx
 9 
10 
11 l = [1,2,3]
12 d = {}
13 try:  #尝试运行代码
14     # print(l[4])
15     print(d['name'])
16 except IndexError as e:  #捕捉IndexError异常
17     print("下标不存在")
18     print(e)
19 except KeyError as e:  #捕捉KeyError异常
20     print("key不存在")
21     print(e)

2.小练习

1 #操作数据库异常处理
 2 import pymysql
 3 mysql_info = {
 4     'host':'118.24.3.40',
 5     'user':'jxz',
 6     'password':'123456',
 7     'db':'jxz',
 8     'port':3306,
 9     'charset':'utf8',
10     'autocommit':True
11 }
12 
13 def op_db(sql,one_tag=True):
14     try:
15         connect = pymysql.connect(**mysql_info)
16     except Exception as e:
17         print("数据库连接失败",e)
18         return "001"
19     else:
20         cur = connect.cursor(pymysql.cursors.DictCursor)
21         try:
22             cur.execute(sql)
23         except Exception as e:
24             print("sql出错!",e)
25             return "002"
26         else:
27             if one_tag:
28                 result = cur.fetchone()
29             else:
30                 result = cur.fetchall()
31         finally:
32             cur.close()
33             connect.close()
34         return result

 其他方法可以参考:https://www.runoob.com/python/python-exceptions.html