十、python异常处理
2021-03-28 03:26
标签:error: 级别 停止 完成 form pyrhon 需要 事先 不同 异常:程序出现了意想不到的情况 如果异常不解决,程序会崩溃,停止运行 捕获异常,如果出现了异常,我们会让他们按照事先规定的规则去执行对应的操作(记录操作日志) 一、语法 try (要运行的有可能发生异常的代码): 代码 except (异常): 出现异常的时候要运行的代码(执行的操作),记录日志 好的程序员:知道什么代码需要放到try里面 try里面的语句调换顺序,报的错误就会不一样 同一个try不可能捕获两个异常的,如果遇到一个异常就直接执行except语句了 二、异常捕获的进阶版 指明出现的异常类型(先不要加异常,让他报错,将报错的类型记住,去异常捕获的时候,加入except语句中) 三、raise 手动抛出异常,让程序报错 四、常见的异常类型: ImportError:无法引入模块或包 IndexError:下标索引超出序列边界 NameError:使用一个还未赋予对象的变量 SynataxError:代码逻辑语法出错,不能执行,不能去捕获 TypeError:传入的对象类型与要求不符 ValueError:传入一个不被期望的值,即使类型正确 KeyError:试图访问你字典里不存在的键 IOError:输入输出异常,文件操作 1)SyntaxError:语法错误 2)KeyError 3)IndexError 五、异常分组 发现了一个严重级别,阻塞级别的bug(短信通知相关人员赶紧集合的代码),一个轻微级别的bug(记录日志的代码) 十、python异常处理 标签:error: 级别 停止 完成 form pyrhon 需要 事先 不同 原文地址:https://www.cnblogs.com/zhangjx2457/p/13634469.html# 一旦try当中的代码报错,会立即跳到except,下面的代码不会继续执行
str_1 = [‘python‘]
try:
print(str_1 [8])
print("是否会执行?")
except: print(‘记录错误日志‘) print("代码完成")
‘‘‘
结果:
记录错误日志
代码完成
‘‘‘# 如果try里面的代码没有出现异常,就不会执行except
str_1 = [‘python‘]
try:
print(str_1 [1])
print("是否会执行?")
except:
print(‘记录错误日志‘)
print("代码完成")
‘‘‘
结果:
y
是否会执行?
代码完成
‘‘‘
a=4
b=1
print(a*b) #需不需要加异常处理?
a=‘a‘
b=‘b‘
print(a*b) #如果事先不知道传入的是什么类型,则需要加异常处理
try:
print(a*b)
except:
print(‘参数错误,记录日志‘)
lst=[‘zjx‘]
try:
print(4/0)
lst[3]
except IndexError as e:
print(‘出现异常:{}‘.format(e))
except ZeroDivisionError as e:
print(‘出现除法错误:{}‘.format(e))
finally:
#不管有没有报错,finally都会执行的
print(‘hello world‘)
def join_team(age,gender):
if age > 22:
raise ValueError(‘年龄要小于22‘)
print(‘可以加入team‘)
print(join_team(23,‘girl‘))
‘‘‘
结果:
ValueError: 年龄要小于22
‘‘‘
try:
ldljsdjlg‘khkhkh‘
except:
print(‘语法错误‘)
#结果显示错误,不能捕获异常
‘‘‘
ldljsdjlg‘khkhkh‘
^
SyntaxError: invalid syntax
‘‘‘
dict1 = {‘1‘:‘zjx‘,‘2‘:‘hauhau‘}
print(dict1[‘3‘])
‘‘‘ print(dict1[‘3‘])
KeyError: ‘3‘
‘‘‘
lst1 = [1,2,3,4,5]
print(lst1[5])
‘‘‘ print(lst1[5])
IndexError: list index out of range
‘‘‘
针对不同的组进行不同的操作try:
1 / 0
[‘hello‘][3]
{‘name‘:‘pyrhon‘}[‘age‘]
except (IndexError,KeyError) as e:
‘短信通知这里出现很严重的问题‘
print(‘可以捕获IndexError和KeyError‘)
except ZeroDivisionError as e:
‘记录日志‘
print(‘除法出现异常{}‘.format(e))