我有一堆类都使用相同的模块Errors.py,我用类定义了我的自定义异常:
class Errors(Exception):
class funcUnicodeError(Exception):
def __init__(self, param, err):
self.err = err
self.param = param
self.msg = 'ERROR : Failed to decode PARAM: ' + param
self.code = 20
所有这些类都在不同的程序中重复使用,我最终在main函数的末尾有一长串的except子句。一切都很好,除了这些例外对于不同的节目是相同的,我必须在不同的地方保持它。
有没有办法将这些条款除了某些地方除外,以便在不同的程序中对它进行一次唯一的调用?
答案 0 :(得分:2)
以下代码
try:
# do something
except Error1:
# except clause 1
except Error2:
# except clause 2
... # long list of except clauses
finally:
# do something
相当于
def main():
# do something
def run(main_func):
try:
main_func()
except Error1:
# except clause 1
except Error2:
# except clause 2
... # long list of except clauses
finally:
# do something
run(main)
现在您可以将函数run
外包到模块中,并且可以在不同的程序中多次重复使用它。
答案 1 :(得分:0)
如果您的异常足够通用,多个不相关的程序可以共享同一个异常堆栈,您可能应该尝试使用内置的异常类(例如ValueError,TypeError等)。