python基础--异常

格式

1.

try:
    pass
except Exception as e:
    raise e

2.

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

3.

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

4.

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 ‘小小小’

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

    main()

简单try执行过程

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

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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/lb786984530/article/details/79895112
今日推荐