「Python入门」异常处理

异常处理的基础概念

异常处理:对有可能发生的异常的预处理方案。

代码格式:

try:
    可能发生异常的代码块
except 异常类型:
    异常处理的代码块

捕获指定类型的异常

下面这种写法只能捕获except语句后面指定的异常类型:
「Python入门」异常处理

如果发生其他类型的异常,是无法捕获的,程序依然会崩溃(和没有捕获异常一样):

「Python入门」异常处理

捕获多种类型的异常

把要捕获的多种异常都写在except关键字后面:

「Python入门」异常处理

捕获所有类型的异常

直接捕获所有类型的异常:

「Python入门」异常处理

捕获异常并打印出异常的原因

「Python入门」异常处理

else和finally

  • else:后面的内容只在没发生异常时执行;
  • finally:后面的内容不管有无异常都会执行(只要程序不崩溃)。
「Python入门」异常处理

异常的传递

「Python入门」异常处理

用户自定义的异常

异常对象必须有一个名字,且它们应是ErrorException类的子类。

「Python入门」异常处理

异常处理中抛出异常

class Test(object):
    def __init__(self, switch):
        self.switch = switch #开关

    def calc(self, a, b):
        try:
            return a/b
        except Exception as result:
            if self.switch:
                print("捕获开启,已经捕获到了异常,信息如下:")
                print(result)
            else:
                # 重新抛出这个异常,此时就不会被这个异常处理给捕获到,从而触发默认的异常处理
                raise


a = Test(True)
a.calc(11,0)

print("----------------------华丽的分割线----------------")

a.switch = False
a.calc(11,0)

运行结果:

「Python入门」异常处理
上一篇:python学习笔记3


下一篇:python极简教程03:文件读写和异常处理