Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Error handling 为什么错误处理很重要?_Error Handling - Fatal编程技术网

Error handling 为什么错误处理很重要?

Error handling 为什么错误处理很重要?,error-handling,Error Handling,我的任务是为我的团队编写编码指南,这非常顺利,直到我的经理让我解释为什么错误处理很重要 我本能地知道,但我如何用语言来表达呢 我试着先用谷歌搜索一下,但结果是空的,所以我现在问我的编码向导同伴 为什么错误处理很重要 因为如果你不这样做会发生什么 如果您能够编写编码指南,您应该能够处理这一点,当然?错误处理非常重要,因为它使代码的最终用户更容易正确使用它。另一个重要问题是,它使代码更易于维护。错误处理使得在代码中嵌入输入规范变得更容易,因此在编写代码并在以后维护代码时不必查找设计。首先,我想问,它

我的任务是为我的团队编写编码指南,这非常顺利,直到我的经理让我解释为什么错误处理很重要

我本能地知道,但我如何用语言来表达呢

我试着先用谷歌搜索一下,但结果是空的,所以我现在问我的编码向导同伴

为什么错误处理很重要

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


如果您能够编写编码指南,您应该能够处理这一点,当然?

错误处理非常重要,因为它使代码的最终用户更容易正确使用它。另一个重要问题是,它使代码更易于维护。错误处理使得在代码中嵌入输入规范变得更容易,因此在编写代码并在以后维护代码时不必查找设计。

首先,我想问,它是否重要

我见过一些被忽略的(丑陋的)代码(例如空引用)

那么,哪些类型的错误需要处理


System.IO.FileNotFoundException
System.Data.SqlClient.SqlException
System.ApplicationException
IMHO。。。大多数程序都非常大,非常复杂,由多人编写。这些因素的组合几乎总是导致某种软件缺陷。这并不是说程序员恶意、愚蠢或懒惰。。。只是在赶时间的过程中,我们往往看不到用户对我们的程序所能做的每一件事,而且肯定会发生一些事情

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

  • 首先,它以一种相对友好的方式让用户知道出现了问题,他们应该联系技术支持部门或者技术支持部门的人员已经得到通知。我们都知道,收到一个相当令人讨厌的、充斥着技术的通知,上面写着“对象未设置为对象的引用”等等,这两者之间有着巨大的区别。。。收到一个漂亮的弹出式窗口,上面写着“出现了问题,请联系帮助台”

  • 其次,它允许程序员添加一些细节来帮助调试问题。例如。。。在我的代码中,我通常编写一个定制的错误处理程序,它接收许多参数,并返回一条漂亮的格式化消息,该消息可以通过电子邮件发送到帮助台、保存在事件日志中、写入日志文件等。。错误消息将包含尽可能多的信息,以帮助我找出发生了什么,堆栈跟踪,函数参数,数据库调用。。。你说吧。我喜欢详细的错误消息来帮助我弄清楚到底发生了什么。用户不必看到任何内容,他们会收到上面友好的信息,让他们知道有人可以知道发生了什么


向一个门外汉经理解释很简单:

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


如果您不处理错误,您的程序可能会崩溃,失去所有客户的工作,并且您可能不知道错误发生在哪里(前提是您不使用堆栈跟踪处理致命异常)。

错误处理如此重要的另一个重要原因是安全性!某些类型的错误如果处理不当,可能会使程序和底层操作系统处于易受攻击的状态。处理错误必须是一个深思熟虑的过程,因为即使处理得当,错误也可能写入日志文件或向屏幕上弹出错误消息,从而为潜在攻击者提供非常有价值的信息,供他们以后利用特定漏洞。

也许,Paul。但有时,即使是最优秀的人也会对如何说话产生怀疑。StackOverflow总是询问编码相关问题的最佳场所。是的,我病了,所以我今天脾气暴躁,但有时我觉得提问者可以先花点力气。。。