CodeSOD:必填字段 笔记

CodeSOD:必填字段

连接到另一个系统需要通过凭据进行身份验证。Lisa 继承的 connect 函数本意是强制要求凭据,却错误地使用了默认参数值。这使得该函数即使不带任何参数调用也能执行,尽管最终会抛出异常。主要问题不仅在于具有误导性的默认值,更在于由此引发的调试噩梦。如果省略用户名,异常会正确提示“需要用户名”;但如果省略密码,显示的却是同样具有误导性的错误信息“需要用户名”。这在事实层面虽为真,却未指出实际问题所在——即缺少密码。这种有缺陷的错误消息体现了“甚至不正确”(not even wrong)的概念:错误消息在技术上正确,但在诊断用户具体问题时完全无助于解决问题。更准确的错误消息应明确指出缺失的是哪一项凭据。这一设计选择严重阻碍了有效的调试和用户体验。