我怀疑所有重要的软件都可能遇到遇到无法解决的外部问题并因此需要失败的情况。这可能是由于配置错误、外部服务器关闭、磁盘已满等原因。
在这些情况下,特别是如果软件在非交互模式下运行,我希望真正能做的就是记录错误并等待管理员阅读日志并修复问题。如果有人碰巧在此期间与软件交互,例如请求进入未能正确初始化的服务器,那么也许可以给出适当的提示来检查日志,甚至可以回显错误(取决于是否您可以判断他们是技术人员还是业务用户)。不过,我们暂时不要想太多这部分。
我的问题是,软件应该在多大程度上负责试图解释致命错误的含义?一般来说,您可以假定软件管理员有多少能力/知识,以及在记录致命错误时您应该包含多少故障排除信息和潜在的解决步骤?当然,如果运行时上下文有一些独特的东西,那么肯定应该记录下来;但是让我们假设您的软件需要通过 LDAP 与 Active Directory 通信并返回错误“ [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece]
”。假设维护人员能够通过谷歌搜索错误代码并弄清楚它的含义是否合理,或者软件是否应该尝试解析错误代码并记录这是由 LDAP 配置中不正确的用户 DN 引起的?
我不知道是否有一个明确的最佳实践答案,所以我很想听听各种观点。