python捕获异常并提示_python 异常捕捉并处理

【python捕获异常并提示_python 异常捕捉并处理】初学python-flask后端
在学长的代码里经常能够看到以下有些难以理解的片段
try:
#直接开始执行try,此处在上下文标记,如果在以下的程序中产生了异常,就会回到这里
db.session.add_all(s_list) #把修改加入session
db.session.commit() #提交
return student_paper_id #返回
#随机组成的试卷存在student_paper_id
except Exception as e :
print(e)
db.session.rollback()
return const_code.STUDENT_PAPER_CODE['FAILED']
假如说,try的子句中出现了异常,则跳回到try,并执行第一个匹配该异常的except子句,在except中对异常进行处理
except 可以同时处理多个异常:这些异常将被放在一个括号里成为一个元组
except (RuntimeError, TypeError, NameError):
pass
Exception是一个异常类,这个Exception可以由自己定义,
Exception as e则是将这个类建立一个instance实例,
print(e) 打印e的内容
db.session.rollback() 因为在session中添加出现错误,于是把session回滚到添加之前的状态防止错误的数据添加
直接return 返回自定义的错误代码
由此示例 我们可以得知 try ex的方法
就是在try中尝试运行,假若出现了异常,则进入ex进行异常处理,这是一个非常缜密的编程习惯,在牵扯到用户数据的地方使用,可以有效地防止坏数据污染数据库,并且给出msg,便于维护 。
常用异常名
AttributeError 调用不存在的方法引发的异常
EOFError遇到文件末尾引发的异常
ImportError 导入模块出错引发的异常
IndexError列表越界引发的异常
IOErrorI/O操作引发的异常,如打开文件出错等
KeyError使用字典中不存在的关键字引发的异常
NameError 使用不存在的变量名引发的异常
TabError 语句块缩进不正确引发的异常
ValueError 搜索列表中不存在的值引发的异常
ZeroDivisionError除数为零引发的异常
常常使用raise
raise 异常名
raise 异常名,数据
raise 类名

    推荐阅读