大家好,欢迎来到IT知识分享网。
其它知识点:assert、raise
try
try: block A except e1: block B # block A 在执行过程中发生e1异常时执行该语句 except e2: block C # block A 在执行过程中发生e2异常时执行该语句 except: block D # block A在执行过程中发生,但该异常是e1或e2之外的异常 else: block E # 没有异常时(即block A顺利执行),将会执行该语句 finally: block F # 无论有没有异常都会执行该语句
- 在这里,e1、e2是在编写过程中可预见的异常,如分子为0,语法错误等。
- 在except后写明异常类型后则只响应该类型的异常。
- else中的语句只有不发生异常时才会执行。
- finally中的语句无论是否发生异常都会执行。
1.使用 else 子句比把所有的语句都放在 try 子句里面要好,这样可以避免
一些意想不到,而 except 又无法捕获的异常。
2.异常处理并不仅仅处理那些直接发生在 try 子句中的异常,而且还能处理
子句中调用的函数(甚至间接调用的函数)里抛出的异常
import sys a=1 b=0 try: print(a/b) except: print("手动输出的异常 Unexpected error:", sys.exc_info()[0]) print('也可以使用 raise 来抛出异常') raise
with···as语句
从解释器的角度去理解with语句执行流程。
with expression [as variable]: with-block
看这个结构我们可以获取至少两点信息:
as variable
可以省略- 有一个句块要执行
这样的一段代码可以称为一个上下文(context),在执行with语句时,解释器会先求出表达式的值,这个值(对象)是一个上下文管理器,并且假设这个对象拥有如下两个类魔术方法:
def __enter__(): # 描述进入上下文的动作 pass def __exit__(): # 描述退出上下文的动作 pass
with语句在求出这个上下文管理器对象之后,自动执行进入方法,并将这个对象的返回值赋值于 as 之后的变量,然后执行语句块。然后在退出上下文前,自动执行对象的退出方法。
python系统和标准库的一些类型定义了这对操作,可以直接用于with语句。比如文件对象就直接支持这一对操作,因此可以用在with语句的头部。
如果你也有类似的计算过程需要抽取出来,那么可以自定义一个类,并且包含进入、退出方法。
Python with 关键字
Python 异常处理
https://blog.csdn.net/qiqicos/article/details/
https://blog.csdn.net/qiqicos/article/details/
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/153402.html