Python语言中程序运行错误和异常处理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | '' ' Python捕获异常: 一旦发生异常,程序就会终止,这是非常糟糕的事情,这种糟糕体现在两方面 1.即便发生了异常,业务上可以忽略它,那么程序应当继续执行 2.程序终止,使得异常的信息没有被保留下来,不利于问题的分析和总结 为了提高程序的健壮性和解决问题,可以将异常捕获,根据业务要求来做对应的处理 '' ' import os # 1. try ... except ... 语法来捕捉异常 def open_files(files): try : with open(files, 'r' ) as f: for line in f: print(line.strip()) except Exception as err:# 可以指定抛出哪个异常,如果你不想指定,那么可以抛出异常Exception, 它是所有异常的父类 print( '文件不存在!\n{0}' .format(err)) else :# 如果没有异常发生,则执行以下的内容 print( "文件读取成功" ) # 2. try ... except ... finally 语句无论是否发生异常都将执行最后finally块内的代码 def open1_files(files): try : with open(files, 'r' ) as f: for line in f: print(line.strip()) except FileNotFoundError as err:# except 可以指定想要捕获的异常 print( '文件不存在!\n{0}' .format(err)) else :# 如果没有异常发生,则执行以下的内容 print( "文件读取成功" ) finally :# finally 语句块,不论 try 子句里是否发生异常,也不论你在except语句块里做了什么操作,总之,最终一定会执行 finally 语句块里的代码 print( "executing finally clause" ) # 3. 程序主动抛出异常 raise 语句自己触发异常(一般很少使用这种方式) # 有时,程序需要主动抛出异常,因为某些情况下,你需要反馈消息给更上层的调用者,告诉它有一些异常情况发生,而你抛出异常的地方,没有能力处理它,因此需要向上抛出异常 def mye(level): if level > 1: raise Exception( 'level 不能大于 1' ) # 触发异常后,后面的代码就不会再执行 print(level) return level if __name__ == '__main__' : open_files( '1.txt' ) open1_files( '2.txt' ) mye(2) |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章