python异常处理学习记录
异常是一种对象,表示一个错误,一般情况下,在python无法正常处理程序时就会发生一个异常。
在脚本发生异常的时候我们需要捕获处理它,不然程序会终止。
try/except语句用来检测try语句块的错误,except语句可以捕获异常信息并处理。
try的工作原理是
当开始一个try语句后,python就在当前程序的上下文中做标记,这样当异常出现后就会回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。
1.当try后的语句执行时发生异常,python九条回到try并执行第一个匹配该异常的except子句,异常处理完毕,如果不再发生异常,那么控制流就通过整个try语句。
2.如果没有匹配的except子句,异常被递交到上层的try,或者到程序的最上层将程序结束并打印错误信息。
试一手
不带异常类型,比较显而易见。
但是以上的方法,我们不能通过该程序识别出具体的异常信息。
使用except带异常类型
可以用异常类型来做出这样一种形式。
finally语句无论是否发生异常都会执行。
一个异常可以带上参数,可作为输出的异常信息参数。
with如何工作?
紧跟with后的语句被求值后,返回对象的__enter__方法被调用,这个方法的返回值将被赋值给as后的变量。
当with后的代码块全部被执行后,将调用前面返回对象的__exit__方法。
exit()中除了self还有三个参数exc_type,exc_val,exc_tb分别代表异常类型,异常值和追溯信息。
另外注意到名为repr的函数,可以将对象转化为供解释器读取的形式。返回值是一个对象的string格式(万物转字符串)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!