try:
    pass
except Exception as e:
    raise e

 

try:
    pass
except Exception as e:
    raise e
else:
    pass

 

try:
    pass
except Exception as e:
    raise e
finally:
    pass

try:
    pass
except Exception as e:
    raise
else:
    pass
finally:
    pass

捕获所有异常的两种方式

  • except
  • except Exception (推荐,可以起别名)

 

抛出异常

raise异常对象

在处理异常中抛出异常

在except的代码段中
* raise
* raise 异常对象别名

自定义异常

    直接或间接从Exception派生
    以标准异常相似,大部分异常的命名都是以Error结尾

    描述信息:类中str中定义描述信息,对象调用这里

class MyError(Exception):
def init(self):
super().__init__()

def str(self):
return "xiaoxiao"


def main():
try:
a = 0
if a == 0: # 触发条件
# 抛出实例对象,这里init没有参数,其实可以有参数的
raise MyError()
except MyError as e: # 捕获
print("aaa")
print(e) # 打印异常描述信息,str内的信息
main()


if __name__ == '__main__':
main()

简单try执行过程

    首先,执行try子句(在try和except关键字之间的部分)

    如果没有异常发生,except子句在try语句执行完毕后就被忽略了

    如果在try子句执行过程中发生了异常,那么该子句其余的部分就会被忽略

    如果异常匹配于except关键字后面指定的异常类型,就执行对应的except子句。然后继续执行try语句之后的代码。如果发生了一个异常,在except子句中没有与之匹配的分支,它就会传递到上一级try语句中。

    如果最终仍找不到对应的处理语句,它就成为一个未处理异常,终止程序运行,显示提示信息。

    一个try语句可能包含多个except子句,分别指定处理不同的异常。至多只会有一个分支被执行。异常处理程序只会处理对应的try子句中发生的异常,在同一个try语句中,其他子句中发生的异常则不作处理。一个except子句可以在括号中列出多个异常的名字。

posted on 2023-03-23 18:39  aha_baby  阅读(20)  评论(0编辑  收藏  举报