说到异常,一个全的case是包含try except eles finally
我们可以这么理解
try后面是执行正常的东西
except是捕捉的异常,可以有多个except来捕捉异常
eles是如果没有异常会执行的东西
finally是无论如何都会执行的东西
这里就不一个个举例子了,记住这些要点就行了
except
如下,可以用来捕获多个异常
try:
print('-----test--1---')
open('123.txt','r')
print('-----test--2---')
except (FileNotFoundError,NameError) as e:
print("产生错误了")
print("错误的异常为:",e)
pass
如果要捕获所有的异常
try:
print('-----test--1---')
open('123.txt','r')
print('-----test--2---')
except Exception as e:
print("产生错误了")
print("错误的异常为:",e)
pass
- 当然,except后面还可以什么都不加
try:
print('-----test--1---')
open('123.txt','r')
print('-----test--2---')
except Exception:
print("产生错误了")
raise
raise可以直接让函数发生崩溃,我们看下面的一个例子。
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)
结果如下: