Python - 捕获错误的好习惯

时间:2011-05-20 02:58:59

标签: python

我的项目中有这些文件:

- main.py
- module1.py
- module2.py

main是将在控制台中直接执行的主文件。

module1将导入main并抛出Module1Exception

module2将导入module1,抛出Module2Exception 并使用引发NormalExceptionCriticalException例外的lib。

在所有例外情况下,应用程序应退出。

哪种选项是捕获这些错误的最有效方法? a)所有异常都将在main中捕获,打印消息并退出
b)允许模块捕获异常(module2捕获lib异常,module1仅捕获Module2Exceptionmain捕获Module1Exception) ,打印信息并退出 c) b 一样,除了模块不会退出,而是返回False并退出将在main中调用

修改

这将是服务器端应用程序,作为守护程序运行。我希望将来我会使用多个具有全局日志监控功能的服务器,如水槽或抄写员。例外必须被捕获。这些文件只是示例。事实上,我正在编写一个大型应用程序,它充当一种服务器。在这一刻我写了加载和解析配置文件的模块。在这种情况下,如果引发任何异常,脚本应该退出。只有在这种情况下。加载配置文件并通过测试后,脚本将无人值守。

1 个答案:

答案 0 :(得分:14)

main应该有责任终止,而不是模块。

如果您想将这些模块导入另一个项目并且没有想要在异常时终止该应用程序,该怎么办?