异常处理:对有可能发生的异常的预处理方案。
代码格式:
try: 可能发生异常的代码块 except 异常类型: 异常处理的代码块
下面这种写法只能捕获except
语句后面指定的异常类型:
如果发生其他类型的异常,是无法捕获的,程序依然会崩溃(和没有捕获异常一样):
把要捕获的多种异常都写在except
关键字后面:
直接捕获所有类型的异常:
else
:后面的内容只在没发生异常时执行;finally
:后面的内容不管有无异常都会执行(只要程序不崩溃)。异常对象必须有一个名字,且它们应是Error
或Exception
类的子类。
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)
运行结果: