给定输入不良时,每种语言,甚至是给定语言的不同编译器都会显示一组不同的错误消息。
除了general debugging techniques之外,在学习解释编译器错误消息的新语言时使用了哪些技术?
答案 0 :(得分:6)
复制并粘贴到Google搜索中。
答案 1 :(得分:5)
阅读文档!!
答案 2 :(得分:5)
这可能太明显了,但从编译器报告的第一条消息开始。其余的可能会从第一个级联起来。
答案 3 :(得分:3)
语言结构的基础知识很有帮助。我记得的一个例子是我在大学里通过介绍comp sci课程帮助朋友。其中一个人从C ++编译器得到一条消息“本地函数定义是非法的”。我立刻知道提问者忘了关闭一个函数的大括号。
问我的人不知道“本地功能定义”甚至意味着什么,这是完全可以理解的。跳转到包含错误消息的行有帮助,并且阅读消息表明函数定义位于“错误的位置”。知道函数如何工作,人们可能会认为这意味着他们不小心试图在另一个函数中声明一个函数。当然,了解功能定义,这是非法的。怎么会发生这种情况?最有可能的罪魁祸首是那些大括号。
基本上,我建议您花点时间分析一下该消息真正想告诉您的内容。它认为你想做什么,为什么会这么想?按照ennuikiller的回复阅读文档也没有伤害。某种程度的经验是必要的,但逻辑思维和演绎会让你走得更远。
答案 4 :(得分:2)
我不确定这是一个合理的问题,因为我不认为“技术”真的是描述理解不熟悉的错误信息的正确范例。更像是你必须适应了解你得到的消息类型和意思,比如你学习任何复杂的语言或成语时所经历的过程。每当你收到错误并找出错误时,你就会建立理解。
另一个词,时间和重复。
答案 5 :(得分:2)
两种技巧:
除了第一个消息外,永远不要注意任何消息。在太多的编译器中,以后的错误消息是spurious。
如果有疑问,请故意犯错,看看编译器如何诊断它们。
之后,对我来说是Google和Stackoverflow!
答案 6 :(得分:1)
真的,你必须学习每个编译器的方言。在第三次从编译器获得相同的错误消息后,您开始注意到将其启动的模式。最后,只要看一条消息,你就会知道你必须做的事情。
与此同时,如果消息的原因不明确,您可以尝试使用Google搜索消息文本中最独特的部分。我在新的编译器上运气好了。
有些编译器比其他编译器有更好的错误信息,但真正有用的只是缩短你的学习曲线。