Python异常处理机制结构实例解析 悠悠 2022-12-21 11:58 145阅读 0赞 更多编程教程请到:[菜鸟教程][Link 1] https://www.piaodoo.com/ 友情链接:[好看站][Link 2] http://www.nrso.net/ [高州阳光论坛][Link 3]https://www.hnthzk.com/ 首先,Python 完整的异常处理语法结构如下: try: #业务实现代码 except Exception1 as e: #异常处理块1 ... except Exception2 as e: #异常处理块2 ... #可以有多个 except ... else: #正常处理块 finally : #资源回收块 ... 整个异常处理结构的执行过程,如图 1 所示。 ![Image 1][] 注意,在整个异常处理结构中,只有 try 块是必需的,也就是说: * 如果没有 try 块,则不能有后面的 except 块、else 块和 finally 块。但是也不能只使用 try 块,要么使用 try except 结构,要么使用 try finally 结构; * except 块、else 块、finally 块都是可选的,当然也可以同时出现; * 可以有多个 except 块,但捕获父类异常的 except 块应该位于捕获子类异常的 except 块的后面; * 多个 except 块必须位于 try 块之后,finally 块必须位于所有的 except 块之后。 * 要使用 else 块,其前面必须包含 try 和 except。 其中,很多初学者分不清 finally 和 else 的区别,这里着重说一下。else 语句块只有在没有异常发生的情况下才会执行,而 finally 语句则不管异常是否发生都会执行。不仅如此,无论是正常退出、遇到异常退出,还是通过 break、continue、return 语句退出,finally 语句块都会执行。 注意,如果程序中运行了强制退出 Python 解释器的语句(如 os.\_exit(1) ),则 finally 语句将无法得到执行。例如: import os try: os._exit(1) finally: print("执行finally语句") 运行程序,没有任何输出。因此,除非在 try 块、except 块中调用了退出 Python 解释器的方法,否则不管在 try 块、except 块中执行怎样的代码,出现怎样的情况,异常处理的 finally 块总会被执行。 另外在通常情况下,不要在 finally 块中使用如 return 或 raise 等导致方法中止的语句(raise 语句将在后面介绍),一旦在 finally 块中使用了 return 或 raise 语句,将会导致 try 块、except 块中的 return、raise 语句失效。看如下程序: def test(): try: # 因为finally块中包含了return语句 # 所以下面的return语句失去作用 return True finally: return False print(test()) 上面程序在 finally 块中定义了一条 return False 语句,这将导致 try 块中的 return true 失去作用。运行上面程序,输出结果为: False 同样,如果 Python 程序在执行 try 块、except 块包含有 return 或 raise 语句,则 Python 解释器执行到该语句时,会先去查找 finally 块,如果没有 finally 块,程序才会立即执行 return 或 raise 语句;反之,如果找到 finally 块,系统立即开始执行 finally 块,只有当 finally 块执行完成后,系统才会再次跳回来执行 try 块、except 块里的 return 或 raise 语句。 但是,如果在 finally 块里也使用了 return 或 raise 等导致方法中止的语句,finally 块己经中止了方法,系统将不会跳回去执行 try 块、except 块里的任何代码。 尽量避免在 finally 块里使用 return 或 raise 等导致方法中止的语句,否则可能出现一些很奇怪的情况。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持菜鸟教程www.piaodoo.com。 [Link 1]: https://www.piaodoo.com/ [Link 2]: http://www.nrso.net/ [Link 3]: https://www.hnthzk.com/ [Image 1]:
相关 Java中异常处理机制解析 在Java编程中,异常处理机制是处理程序运行过程中可能出现的错误情况的重要手段。以下是这个机制的几个核心部分解析: 1. **抛出异常(Throwing an Excepti 灰太狼/ 2024年09月18日 11:06/ 0 赞/ 3 阅读
相关 Java反射机制实例解析 Java反射机制是Java语言提供的一种能力,允许程序在运行时检查类的信息(如方法、属性等)并动态调用这些信息。 下面是一个简单的实例解析: ```java // 创建一个 我就是我/ 2024年09月16日 21:51/ 0 赞/ 11 阅读
相关 开发人员困惑:Java异常处理机制实战解析 Java的异常处理机制是面向编程中的一个关键部分,它可以帮助我们更优雅地处理程序运行时可能出现的问题。 以下是Java异常处理机制的几个核心概念和实战解析: 1. 异常(E 太过爱你忘了你带给我的痛/ 2024年09月16日 08:39/ 0 赞/ 9 阅读
相关 Java中异常处理机制解析 在Java编程语言中,异常处理机制是为了更优雅地处理程序运行过程中的错误和意外情况。以下是对Java中异常处理机制的解析: 1. **抛出异常**: - `throw` r囧r小猫/ 2024年09月15日 12:21/ 0 赞/ 11 阅读
相关 异常处理盲点:Java异常处理机制实例解析 在编程中,理解并正确使用异常处理是非常重要的。下面我将以Java为例,解析一下异常处理的盲点及实例。 1. **盲点**: - **忽视局部异常**:在复杂的业务逻辑中 电玩女神/ 2024年09月15日 07:06/ 0 赞/ 10 阅读
相关 Java异常处理机制的使用误区和案例解析 Java异常处理机制是Java编程中的一大特性,它允许我们在程序运行过程中捕获和处理错误。以下是一些使用误区以及案例解析: 1. **误区一:过度使用try-catch块** Myth丶恋晨/ 2024年09月15日 03:48/ 0 赞/ 7 阅读
相关 Java异常处理机制误区解析 在Java编程中,理解和正确应用异常处理机制是非常重要的。以下是关于Java异常处理的一些常见误区解析: 1. **过度使用try-catch块**:如果每个可能抛出异常的代 Myth丶恋晨/ 2024年09月10日 18:48/ 0 赞/ 19 阅读
相关 Python异常处理机制结构实例解析 更多编程教程请到:[菜鸟教程][Link 1] https://www.piaodoo.com/ 友情链接:[好看站][Link 2] http://www.nrso.net 悠悠/ 2022年12月21日 11:58/ 0 赞/ 146 阅读
相关 Python异常处理机制 Python和java相比,同样拥有强大的异常处理机制,下面让我们一起来看看Python是如何处理异常的 1,try...except.... eg1: a,b=1,0 客官°小女子只卖身不卖艺/ 2022年02月02日 04:23/ 0 赞/ 170 阅读
还没有评论,来说两句吧...