2010-01-04 135 views

回答

5

閱讀文檔!

+3

rtfm,可以這麼說。 – moritz 2010-01-04 18:00:24

+0

是的......絕對! – ennuikiller 2010-01-04 18:02:24

2

我不確定這是一個合理的問題,因爲我不認爲「技術」真的是描述理解陌生錯誤消息的正確範例。更像是你必須習慣於理解你得到什麼類型的消息以及它們的意思,就像你學習任何複雜的語言或習慣用法所經歷的過程。每次你得到錯誤,並找出你錯了什麼,你正在建立你的理解。

等詞,時間和重複。

+0

我不同意。有幾種技巧可以幫助理解編譯器錯誤消息,以幫助初學者更快地理解給定的錯誤消息。我懷疑數十年來處理編譯器的人可能具備這些技能和基本理解,因此他們甚至不再去思考。隨着時間的推移,這些技能肯定會被吸取,但如果能夠爲剛剛開始的人提供幫助,這將是一件好事。 – 2010-01-04 18:12:33

+0

它可能是你對亞當,但我仍然與史蒂夫。我已經編程了大約30年,但是每當我嘗試學習一種新語言(顯然是在一個新的編譯器上),它幾乎就像我再次試圖弄清楚編譯器想要的WTH。 – 2010-01-04 18:35:05

6

複製並粘貼到Google搜索。

+0

聽起來很愚蠢,但它會讓你通過像冠軍那樣難懂的錯誤的學習曲線。 – 2010-01-04 18:37:26

+0

我希望我能+1000這個答案。如果每次有人問我關於一個編譯器的問題時,我都會有一美元,而這個編譯器很容易通過搜索Google來回答,我確實是一個非常有錢的人。 – 2012-01-20 14:23:38

5

這可能太明顯了,但是從編譯器報告的第一條消息開始。其餘的可能會從第一個級聯。

3

該語言結構的基礎知識很有幫助。我記得的一個例子是,當我在大學幫助朋友介紹課程時,其中一人從C++編譯器獲得了一條消息:「本地函數定義是非法的」。我立即知道提問者已經忘記關閉一個函數的大括號。

問我的人不知道「本地功能定義」甚至意味着什麼,這是完全可以理解的。跳轉到包含錯誤消息的行會有所幫助,並且讀取消息表明函數定義處於「錯誤的地方」。知道函數是如何工作的,人們可能會認爲這意味着他們意外地試圖在另一個函數中聲明一個函數。當然,知道函數定義,這是非法的。這將如何發生?最有可能的罪魁禍首是那些大括號。

本質上,我建議你花時間分析一下這封郵件是否真的想要告訴你。它認爲你想要做什麼,爲什麼會這樣想?根據ennuikiller的反應讀取文檔也不會造成任何影響。一定程度的經驗是必要的,但邏輯思維和演繹會讓你走得更遠。

1

真的,你必須學習每一個編譯器的方言。在你第三次從編譯器得到同樣的錯誤信息之後,你開始注意到它的啓動模式。最終,只要看到一條消息,你就會知道你必須完成什麼樣的事情。與此同時,如果郵件的原因不明確,您可以嘗試使用Google搜索消息文本中最獨特的部分。對於新的編譯器我已經有了好運氣。

一些編譯器比其他編譯器有更好的錯誤信息,但所有真正有用的工作是縮短您的學習曲線。

2

兩種技術:

  • 從來不去注意任何消息,但第一。在太多的編譯器中,以後的錯誤信息是spurious

  • 如有疑問,請故意犯錯,看看編譯器如何診斷它們。

之後,它是谷歌和Stackoverflow對我來說!