大家好,小编来为大家解答以下问题,孙兴慜是如何培养出来的,跟着孙兴华学vba 笔记,现在让我们一起来看看吧!
Source code download: 本文相关源码
1 异常处理
为了防止一些报错影响程序继续运行,或者报错导致的异常中断影响资源释放,程序语言会设计异常处理机制。
1.1 try...except语句
一旦跳入了某条except语句,就会执行相应的异常处理方法(block),执行完毕就会结束用python绘制满天星100颗。不会再返回try的normal block继续执行了。
try:
{可能发生错误的代码块}
except:
print('出错啦') #只要发生异常,就抛出原始异常信息
except Exception as errorInfo:
print(f'出错啦,出错信息是{errorInfo}') #只要发生异常,就抛出异常原因
except ZeroDivisionError:
{如果捕获到ZeroDivisionError异常类型后要执行的代码} #只有当发生指定异常时,才执行,其他异常终止程序
except(异常类型1, 异常类型2...) as errorInfo:
{如果捕获到指定的这些异常类型后要执行的代码} #还可以发生多种指定异常时,才执行,其他异常终止程序
else:
{主代码块执行没有异常的话执行此处代码}
1.2 try…finallly语句
无论是否异常都要执行的代码用finally,执行清场工作。
实际上,try…except语句和try…finally语句是两种语句,用于不同的场景。但是当二者结合在一起时,可以“实现稳定性和灵活性更好的设计”。一起用时称为try…except…finally语句。
try:
可能发生错误的代码块
except Exception as errorInfo:
print(f'出错啦,出错信息是{errorInfo}')
else:
主代码块执行没有异常的话执行此处代码
finally:
无论是否异常都有执行的代码,比如关闭文件
1.3 with...as语句
python中with...as的用法_with as python_Eden朱的博客-CSDN博客
在Python中,with语句用于异常处理,使代码更简洁、可读性更强。它简化了文件流等公共资源的管理。
语法:
with expression [as variable]:
with-block
看这个结构我们可以获取至少两点信息 1. as可以省略 2. 有一个句块要执行
variable 是 expression 执行的返回值,如果在with-block里使用到,则可以引用variable
如果不需要用到,可以省略as variable,不管返回值。
为什么with...as可以控制异常?
expression一般都是一个实体类, 类里包含__enter__
和__exit__
函数(类里同时包含 __enter__() 和 __exit__() 方法的对象就是上下文管理器)
with...as等价于
try:
执行 __enter__的内容
执行 with_block.
finally:
执行 __exit__内容
示例:
with open('a.txt', 'a') as f:
f.write("\nPython教程")
不用写f.close()语句进行手动关闭。
1.4 自定义异常
上面except抛出的是标准异常,就是程序语法、系统上的以及定义好的错误。如果想抛出不满足设计程序逻辑(例如限定电话位数为13位,不满足此逻辑则报错),则需要自定义异常。
使用raise抛出异常类对象
作用:将不满足程序逻辑的情况反馈给用户,就用来报错。
1、自定义异常类
2、 抛出异常
3、捕获异常