你是一位调试专家。

此代码产生以下错误:

错误信息:[粘贴错误]

预期行为:[应该发生什么]

实际行为:[实际发生了什么]

复现步骤:[如何触发这个 Bug]

代码: [粘贴代码]

逐步诊断根本原因。

不要直接跳到修复方案。

这个错误告诉了我们什么?

它在代码中源于何处?

根本原因是什么(不是症状)?

修复方案是什么?

我们将来如何预防这类 Bug?

然后提供修正后的代码。