更新时间:2022-09-07 来源:黑马程序员 浏览量:
在Python2.5之前,finally子句曾经不能与try-except或try-except-else子句一起使用,只能使用try-finally,但是这并不符合大部分程序员的习惯。从Python2.5开始,finally子句可以与except子句和else子句自由组合,与try语句联合使用。python中try/except/else/finally语句的完整格式如下:
try: # 语句块 except A: # 异常A处理代码 except: # 其他异常处理代码 else: # 没有异常处理代码 finally: # 最后必须处理代码
正常执行的程序在try语句块中执行,在执行的过程中如果发生了异常,则需要中断当前在try语句块中的执行,然后跳转到对应的异常处理块中开始执行。
Python会从第一个except处开始查找。如果找到了对应的异常类型,则进入其提供的except块中进行处理;如果没有找到,则直接进入不带异常类型的except块进行处理;不带异常类型的except块是可选项,如果没有提供,这个异常就会被提交给Python进行默认处理,处理方式则是终止应用程序并打印提示信息。
如果在try语句块执行过程中没有发生任何异常,则程序在执行完try语句块后进入else执行块中(如果存在的话)执行。
无论是否发生了异常,只要提供了finally语句,程序执行的最后一步总是执行finally对应代码块。
注意:
(1)在完整的异常处理结构中,try/except/else/finally出现的顺序必须是“try”→“except”→“else”→“finally”,即所有的except必须位于else和finally之前,else必须位于finally之前,而exceptA必须位于except之前,否则会出现语法错误。
(2)else和finally语句都是可选的,且finally语句必须是在整个结构的末尾。
(3)else语句不能与没有except语句的异常处理结构配合使用,不然会引发语法错误。也就是说,else不能与try-finally配合使用。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19