我的项目中有这些文件:
- main.py
- module1.py
- module2.py
main
是将在控制台中直接执行的主文件。
module1
将导入main
并抛出Module1Exception
。
module2
将导入module1
,抛出Module2Exception
并使用引发NormalException
和CriticalException
例外的lib。
在所有例外情况下,应用程序应退出。
哪种选项是捕获这些错误的最有效方法?
a)所有异常都将在main
中捕获,打印消息并退出
b)允许模块捕获异常(module2
捕获lib异常,module1
仅捕获Module2Exception
和main
捕获Module1Exception
) ,打印信息并退出
c)与 b 一样,除了模块不会退出,而是返回False并退出将在main
中调用
修改
这将是服务器端应用程序,作为守护程序运行。我希望将来我会使用多个具有全局日志监控功能的服务器,如水槽或抄写员。例外必须被捕获。这些文件只是示例。事实上,我正在编写一个大型应用程序,它充当一种服务器。在这一刻我写了加载和解析配置文件的模块。在这种情况下,如果引发任何异常,脚本应该退出。只有在这种情况下。加载配置文件并通过测试后,脚本将无人值守。
答案 0 :(得分:14)
main
应该有责任终止,而不是模块。
如果您想将这些模块导入另一个项目并且没有想要在异常时终止该应用程序,该怎么办?