网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

Python中的异常机制(二)

时间:2023-05-11 18:20

人气:

作者:admin

标签: 程序 

导读:二、try和except结构 try...一个except结构 这种结构是最常见, 也是最常用的结构 语法结构 try:  被监控的可能引发异常的语句块 except  BaseException [as  e]:  异常处理语句块 注意事项: try...

二、try和except结构

try...一个except结构

这种结构是最常见, 也是最常用的结构

语法结构

try:

被监控的可能引发异常的语句块

exceptBaseException[ase]:

异常处理语句块

注意事项:

  • try 块包含着可能引发异常的代码, except 块则用来捕捉和处理发生的异常
  • 执行的时候,如果 try 块中没有引发异常,则跳过 ecept 块继续执行后续代码
  • 执行的时候,如果 try 块中发生了异常,则跳过 try 块中的后续代码,跳到相应的 except 块中处理异常. 异常处理完后,继续执行后续代码

实操代码

defa():

print("runina()start!")

try:

num=1/0

exceptBaseExceptionase:

print("捕获异常之后执行此处代码")

print("runina()end!")

defb():

print("runinb()start!")

a()

print("runinb()end!")

defc():

print("runinc()start!")

b()

print("runinc()end!")

print("step1")

c()

print("step2")

try...多个except结构

try...except 的结构可以捕获所有的异常,工作中也很常见. 但是,一般建议尽量捕获可能出现的多个异常(按照先子类后父类的顺序),并且针对性写出异常处理代码 为了避免遗漏可能出现的异常,可以在最后增加 BaseException 。结构如下

语法结构

try:

被监控的、可能引发异常的语句块

exceptException1:

处理Exception1的语句块

exceptException2:

处理Exception2的语句块

[...]

except BaseException:

处理可能遗漏的异常的语句块

实操代码

try:

a=input("请输入被除数:")

b=input("请输入除数:")

result=float(a)/float(b)

print(result)

exceptZeroDivisionError:

print("异常:0不能做除数")

exceptValueError:

print("异常:输入的必须是数值类型!")

exceptBaseExceptionase:

print(e)

print(type(e))

try...except...else结构

在 try...except...else 结构的基础上增加了 else 块 .如果 try 块中没有抛出异常,则执行else 块. 如果 try 块中抛出异常,则执行 except 块,不执行 else 块.

语法结构

try:

被监控的可能引发异常的语句块

exceptBaseException[ase]:

异常处理语句块

else:

没有抛出异常时执行的语句块

实操代码

try:

a=input("请输入被除数:")

b=input("请输入除数:")

result=float(a)/float(b)

exceptBaseExceptionase:

print(e)

else:

print("两数相除,结果是:",result)

try...except...finally结构

try...except...finally 结构中, finally 块无论是否发生异常都会被执行, 通常用来释放 try 块中申请的资源

语法结构

try:

被监控的可能引发异常的语句块

exceptBaseException[ase]:

异常处理语句块

finally:

无论是否捕获异常都会执行的语句块

实操代码

try:

a=input("请输入被除数:")

b=input("请输入除数:")

result=float(a)/float(b)

exceptBaseExceptionase:

print(e)

else:

print("两数相除,结果是:",result)

finally:

print("我是finally中的语句, 无论发生异常与否, 都执行!")

实操代码2

try:

f=open("d:/a.txt",'r')

content=f.readline()

print(content)

exceptBaseExceptionase:

print(e)

finally:

f.close()#释放资源. 此处也可能会发生异常。若发生异常,则程序终止,不会继续往下执行

print("step4")

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信