应用出错时该说什么:写一条用户真正看得懂的错误提示

一条好的错误提示会说明发生了什么、是谁的问题、接下来该怎么做,而且不会抹掉用户已经填好的内容——它能把一次故障变成一次重试,而不是让用户从此放弃你的应用。

任何应用都会偶尔出故障。网络掉线、服务器打嗝、有人在电话号码里输入了字母——这些你没法完全防住。但你能控制的,是错误提示——也就是出问题时应用显示的那段文字——而这一句话,往往决定了用户是耸耸肩再试一次,还是默默认定你的应用坏了,再也不回来。

大多数 AI 搭建的应用,恰恰在这个关键时刻掉了链子。这不是因为搭建者粗心,而是因为错误提示这种东西,平时没人会去想,直到它真的在某个真实用户面前出了问题。默认情况下,应用往往只会呈现两种最糟糕的情况之一:什么都不说,或者甩出一大段吓人的技术文字。我们把这两种都修好。

为什么应用会悄无声息地失败,或者弹出吓人的错误提示?

应用出故障时,通常会以两种糟糕的方式表现:出问题时一声不吭,或者甩出一段普通人根本看不懂的技术错误。这两种情况都会让用户摸不着头脑——而摸不着头脑,正是让人放弃的原因。

悄无声息的失败。 一位自由职业者,姑且叫她 Maya,为自己的摄影生意搭了一个预约表单。一位客户点了”确认预约”,按钮闪了一下,然后……没了。没有确认,没有错误提示,没有加载动画。到底成没成功?客户拿不准,于是又预约了一次。结果 Maya 的同一个时段收到了两条预约,还多了一位一头雾水的客户。应用其实没有崩溃——只是保存失败了,而应用什么都没说,于是眼前的这位用户完全不知道实际发生了什么。

吓人的技术错误。 另一种失败更响亮,某种意义上还更糟。一位为社区筹款做志愿者的用户想上传一份表格,结果收到一个红框,上面写着 Error 500: Internal Server Error。她把这理解成”我把什么东西弄坏了”。她没有再试,也没有发邮件求助,只是关掉了页面——因为这条提示让问题听起来像是她的错,而且再碰一下可能都不安全。

这两位用户遇到的,都是再正常、再容易恢复不过的问题。可他们都走开了,因为应用的错误提示要么什么都没说,要么说得让人心惊。

什么样的错误提示才算好?

一条好的错误提示,用平实的话做到四件小事:说明发生了什么,说明是谁的问题,说明接下来该怎么做,而且不会丢掉用户已经输入的内容。

  1. 说明发生了什么——“我们没能保存你的预约”,而不是沉默,也不是甩出一个 500。
  2. 说明是谁的问题——诚实的答案通常是”我们的问题”,而说出这一点本身就能让人安心。
  3. 说明接下来该怎么做——“稍后再试一次”或者”检查一下网络连接,然后重试”。
  4. 不丢失他们已经输入的内容——错误提示弹出来的时候,他们刚才填的东西还原样待在表单里。

就这么简单。不需要长篇道歉,不需要把错误代码当标题,也不需要甩锅。下面把前面提到的三个例子重写一遍:

  • ❌ (什么都没发生) → ✅ “刚才没能保存成功。你填的信息还在——点一下”确认”再试一次。”
  • ❌ Error 500: Internal Server Error → ✅ “上传这个文件时我们这边出了点问题,不是你的原因,请稍后再试一次。”
  • ❌ Invalid input → ✅ “这个电话号码好像不太对——应该是 10 位数字,比如 555-123-4567。”

注意最后一个例子,它指向了具体的字段,还给出了正确格式的示例。“输入无效”只会让人瞎猜;“这个电话号码应该是 10 位数字”则直接告诉对方该改什么。

应该先修哪些应用错误?

你不需要为每一种可能的故障都写一条专属提示——三类问题几乎覆盖了普通应用里会出的所有状况:保存或提交失败、应用无法识别的输入,以及你这边出的故障。

保存或提交失败。 这是最伤信任的一种,因为用户明明什么都做对了,却拿不准到底成没成功。永远要么确认成功,要么解释失败——绝不能让他们瞎猜,也绝不能丢掉他们输入的内容。

“我们没法识别你输入的内容”(校验错误)。 这其实算不上真正的错误——更像是一场误会。要在用户离开该字段的那一刻就发现问题,精准指向具体字段,并给出正确格式的示例。别等到用户点了提交,才甩出一整片红字。

“我们这边出了点问题”。 这是真正的服务器或网络故障。要说明是你这边的问题,语气保持平静,并给用户一个重试的机会。用户没法修你的服务器,所以别让他们觉得这是自己的责任。

三个悄悄发挥作用的好习惯

有几件事,能把从容应对故障的应用,和做不到这一点的应用区分开来:

  • 绝不把原始错误代码当作提示的全部内容。 代码可以用小字放在下面供客服参考,但用户读到的标题应该是一句人话,而不是 ERR_CONN_RESET。
  • 绝不指责用户。 “你输入的东西不对”会刺痛人;“这个日期看起来是过去的时间——你是不是想选下个月?”则是在帮忙。信息一样,感受完全不同。
  • 始终保留用户已输入的内容。 如果应用重新加载或保存失败,导致表单被清空,你就把一个小故障变成了十分钟的重新输入。人们可以原谅一次保存失败,但不会原谅让他们把活干两遍。

怎么让你的 AI 搭建工具写出更好的错误提示?

大部分工作,一条请求就能搞定——粘贴下面这样的提示词,你的 AI 搭建工具就会在整个应用里套用上述的平实语言规则。

“当保存或上传失败时,不要悄无声息地失败,也不要显示技术性的错误代码。用简短、友好的平实语言说明发生了什么,告诉用户可以再试一次没关系,并保留用户已经输入的内容。对于表单字段,在用户离开每个字段时就进行校验,并显示具体的提示以及正确格式的示例。”

接着让它带你过一遍三种情况下会发生什么:网络断了、必填字段是空的,以及服务器响应很慢。如果其中任何一种情况的答案是”什么都不显示”或者”显示原始错误”,那就是你接下来要修的地方。

怎么测试你应用的错误提示?

关掉 Wi-Fi,打开你的应用,试着完成核心操作——测试就这么简单,两分钟就能做完。

预约一个时段、保存一条笔记、上传一个文件。看看它会说什么。它有没有用普通人能听懂的话说明情况?有没有丢掉你输入的内容?然后重新打开 Wi-Fi,故意在某个字段里输入一些乱七八糟的内容。再问一遍同样的问题。

大多数应用第一次测试都会不及格,这没关系——它恰好告诉了你该从哪里入手。你不需要让每一条错误提示都做到完美。找出应用里出故障最频繁的那个地方,先把那一条提示写得友善、清晰、诚实。下次真实用户遇到它时,他们会选择再试一次,而不是离开——而”再试一次”,就是全部的关键所在。