当前位置: 代码迷 >> 综合 >> python中自定义异常和assert,else,finally
  详细解决方案

python中自定义异常和assert,else,finally

热度:3   发布时间:2024-01-17 15:26:18.0
class MyException(Exception):                       # 自定义异常类,继承自Exceptionpass# raise MyException("这是用户定义的异常")           # 触发自定义异常
try:                                               # 捕捉异常raise MyException("这是用户定义的异常")         # "这是用户定义的异常"是个message
except MyException as e:                            # e就是MyExcetion的一个对象print(e)# assert断言的使用assert(1 == 1)                                     # 这样不会报错
assert(1 == 0)                                     # 报错AssertionErrordef demo(x, y):return x + yprint(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('清理工作')                           # 清理工作

 

  相关解决方案