示例 - 甚至是初学者示例 - 是否包含错误处理代码?

Bil*_*ard 7 error-handling

Brian Kernighan在最近的一次采访中被问到这个问题.我引用他的回复:

布莱恩:我对此很不满意.错误处理代码往往体积庞大,非常无趣且没有破坏性,因此它常常妨碍学习和理解基本的语言结构.同时,重要的是提醒程序员错误确实发生,并且他们的代码必须能够应对错误.

我个人的偏好是几乎忽略了教程前面部分的错误处理,除了提到错误可能发生,并且类似于忽略参考手册中大多数示例中的错误,除非某些部分的内容是错误.但这可以强化无意识的信念,即忽视错误是安全的,这总是一个坏主意.

我经常在这里和我自己的博客上留下代码示例中的错误处理,我注意到这是Stack Overflow的一般趋势.我们是在加强坏习惯吗?我们是否应该花更多的时间来处理错误处理的例子,或者它是否只是为了说明这一点?

hea*_*der 11

我认为这可能是一个改进,如果在发布示例代码时我们至少提出评论,说你应该把错误处理代码放在某些地方.这可能至少有助于使用该代码的人记住他们需要进行错误处理.这将保留用于错误处理的额外代码,但仍将强化需要错误处理代码的想法.


sis*_*sve 6

任何提供的示例代码将至少复制粘贴到生产代码中一次,因此在编写代码时最好.


Bri*_*new 5

除了在演示编码点时混乱代码的问题之外,我认为问题变成了,您如何选择处理示例代码中的错误?

也就是说,你做什么的?对于一个应用程序来说,致命的是另一个应用程序是非致命的.例如,如果我无法从网络服务器(无论是404错误还是无响应的服务器)检索某些信息,如果没有这些数据就无法做任何事情,这可能是致命的.但是,如果这些数据是对你正在做的事情的补充,那么也许你可以没有它.

所以上面可能只是简单地记录错误.这比完全忽略错误要好.但我认为通常困难在于知道如何/何时(以及何时没有)从错误中恢复.也许这本身就是一个全新的教程.


小智 2

我并不经常不同意 BWK,但我认为初学者的示例尤其应该显示错误处理代码,因为这是初学者很难做到的。更有经验的程序员可以将错误处理视为已读。