python 错误和异常处理:try/except/else/finally用法大全
程序员文章站
2022-04-02 11:10:15
错误和异常处理:try/except/else/finally用法大全样例1:try/except首先,执行 try 子句 (try 和 except 关键字之间的(多行)语句)。如果没有异常发生,则跳过 except 子句 并完成 try 语句的执行。如果在执行 try 子句时发生了异常,则跳过该子句中剩下的部分。参考:try 语句的工作原理(https://docs.python.org/zh-cn/3/tutorial/errors.html)>>> try:.....
错误和异常处理:try/except/else/finally用法大全
样例1:try/except
- 首先,执行 try 子句 (try 和 except 关键字之间的(多行)语句)。
- 如果没有异常发生,则跳过 except 子句 并完成 try 语句的执行。
- 如果在执行 try 子句时发生了异常,则跳过该子句中剩下的部分。
参考:try 语句的工作原理
(https://docs.python.org/zh-cn/3/tutorial/errors.html)
>>> try:
... b = 10
... a = b
... print(a)
... except:
... print("出错啦")
...
10
>>>
>>> try:
... # b = 10
... a = b
... print(a)
... except:
... print("出错啦")
...
出错啦
样例2:try/多个except
- 一个 try 语句可能有多个 except 子句,以指定不同异常的处理程序。 最多会执行一个处理程序。
- 最后的 except 子句可以省略异常名,以用作通配符。但请谨慎使用,因为以这种方式很容易掩盖真正的编程错误!它还可用于打印错误消息,然后重新引发异常(同样允许调用者处理异常):
>>> try:
... # b = 10
... a = b1
... print(a)
... except SyntaxError:
... print("SyntaxError")
... except SystemError:
... print("SystemError")
... except:
... print("otherError")
...
otherError
>>>
样例3:raise
- raise 语句允许程序员强制发生指定的异常
>>> raise NameError("name 'b1' is not defined")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'b1' is not defined
>>>
样例4:try/except/else/finally
- 先执行try block, 直到发现了错误,不再执行异常之后的代码。
- 执行except block,若匹配到异常类型,处理异常;若未匹配到,继续向下执行。
- else,无异常处理时会执行其代码
- finally,无论try语句是否有异常,最后都要执行的代码。
>>> try:
... # b3 = 10
... a = b3
... print(a)
... except SyntaxError:
... print("SyntaxError")
... except SystemError:
... print("SystemError")
... except:
... print("otherError")
... else:
... print("无异常处理时执行此行")
... finally:
... print("finally 子句在任何情况下都会被执行。")
...
otherError
finally 子句在任何情况下都会被执行。
>>>
>>>
>>> try:
... # b3 = 10
... a = b3
... print(a)
... except SyntaxError:
... print("SyntaxError")
... except SystemError:
... print("SystemError")
... else:
... print("无异常处理时执行此行")
... finally:
... print("finally 子句在任何情况下都会被执行。")
...
finally 子句在任何情况下都会被执行。
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
NameError: name 'b3' is not defined
>>>
参考链接:错误和异常
本文地址:https://blog.csdn.net/summer_ruoshui/article/details/109625057
推荐阅读
-
Python中的异常处理try/except/finally/raise用法分析
-
python 错误和异常处理:try/except/else/finally用法大全
-
Python 对异常与错误的处理策略,用 try...except,还是 if...else...,哪种比较好?
-
Python 对异常与错误的处理策略,用 try...except,还是 if...else...,哪种比较好?
-
Python中关于try-except用法的错误和异常处理详解
-
Python中关于try-except用法的错误和异常处理详解
-
python异常的捕获处理 try-except-else-finally return语句和异常处理问题 传递性主动抛出异常 自定义异常类 常见异常汇总 traceback模块 异常信息写入日志文件
-
python 错误和异常处理:try/except/else/finally用法大全