class MyException(Exception): # 自定义异常类,继承自Exception
pass
# raise MyException("这是用户定义的异常") # 触发自定义异常
try: # 捕捉异常
raise MyException("这是用户定义的异常") # "这是用户定义的异常"是个message
except MyException as e: # e就是MyExcetion的一个对象
print(e)
# assert断言的使用
assert(1 == 1) # 这样不会报错
assert(1 == 0) # 报错AssertionError
def demo(x, y):
return x + y
print(demo(1, 2)) # 3
assert(demo(1, 2) == 3) # 不会报错
assert(demo(1, 2) == 4) # 报错AssertionError
# try...except...else...语句的使用和finally
"""
try:
执行代码
except:
如果有异常发生,执行此处的代码
else:
如果没有异常发生,执行此处代码
finally: (有的代码需要这个关键字)
不管有没有异常都会执行此处代码
"""
def my_interaction():
raise MyException('这是用户定义的异常2')
try:
my_interaction()
except MyException as error:
print(error) # 这是用户定义的异常2
else:
print('Executing the else clause') # 因为异常发生,所以这句话不会执行
try:
my_interaction()
except MyException as error:
print(error) # 这是用户定义的异常2
else: # 如果异常发生,会打印error,而else语句不会执行
try:
with open('file.log') as file:
read_data = file.read()
except FileNotFoundError as fnf_error:
print(fnf_error)
finally: # 不管异常是否发生,都会执行
print('清理工作') # 清理工作