为什么错误处理很重要?

时间:2008-12-15 11:55:32

标签: error-handling

我的任务是为我的团队编写编码指南,直到我的经理要求我写出为什么错误处理很重要的解释时,它才会很好。

我本能地知道,但我怎么用文字表达呢?

我试图先把它谷歌但是空了,所以我现在问我的同事编码向导。

6 个答案:

答案 0 :(得分:17)

恕我直言......大多数节目都非常庞大,非常复杂并且由多人编写。这些因素的组合几乎总会导致某种软件错误。并不是说程序员是恶意的,愚蠢的还是懒惰的...只是在急于达到最后期限时,我们经常不会预见到用户可以对我们的程序做的每一件事情都会发生,并且必然会发生一些事情。

在这方面,错误处理有两个目的。

  • 首先,它让用户以相对友好的方式知道出现了问题,并且他们应该联系技术支持部门或者已经通知技术支持人员。众所周知,收到一个相当令人讨厌的,技术上很奇怪的通知,说“对象没有设置为对象的引用”等等,并且收到一个很好的弹出窗口,上面写着“有一个问题。请联系服务台“。

  • 其次,它允许程序员输入一些细节来帮助调试问题。例如......在我的代码中,我通常会编写一个自定义错误处理程序,它接受一些参数并吐出一个漂亮的格式化消息,可以通过电子邮件发送到帮助台,存储在事件日志中,写入日志文件等。错误信息将包含尽可能多的信息,我可以在那里填写,以帮助我弄清楚发生了什么,堆栈跟踪,函数参数,数据库调用...你的名字。我喜欢详细的错误消息,以帮助我弄清楚究竟发生了什么。用户永远不必看到任何一个,他们得到上面的好消息,让他们知道有人可以弄清楚发生了什么。

答案 1 :(得分:4)

错误处理很重要,因为它使代码的最终用户更容易正确使用它。另一个重要问题是它使您的代码更易于维护。错误处理使得将输入规范嵌入到代码中变得更加容易,因此您在编写和稍后维护代码时无需查找设计。

答案 2 :(得分:3)

向外行经理解释很简单:

如果您处理错误,您的程序可能会在发生错误后继续运行,您的客户可能会继续工作,并且您可以提供有关错误发生方式的报告,以便您进行修复。

如果您没有处理错误,您的程序可能会崩溃,丢失所有客户的工作,并且您可能不知道错误发生的位置(假设您没有处理堆栈跟踪的致命异常)。

答案 3 :(得分:2)

  

为什么错误处理很重要。

因为如果你不这样做会发生什么。

如果你有能力编写编码指南,你当然应该能够处理这个问题吗?

答案 4 :(得分:1)

首先我要问的是重要吗?

我看过(丑陋的)代码,其中忽略了一些错误(例如null引用)

那么什么类型的错误很重要?

System.IO.FileNotFoundExceptionSystem.Data.SqlClient.SqlExceptionSystem.ApplicationException

之间存在很大差异

答案 5 :(得分:0)

错误处理如此重要的另一个巨大原因是安全性!某些类型的错误(如果未正确处理)可能会使程序和基础操作系统处于易受攻击的状态。处理错误必须是一个经过深思熟虑的过程,因为即使妥善处理错误,错误也可以写入日志文件或将错误消息飞溅到屏幕上,从而为潜在的攻击者提供非常有价值的信息,他们以后可以利用这些信息利用特定漏洞。