1

開発者ツールとソフトウェアは通常、エラー メッセージに解決策の提案を提供しません。コンパイラは何が問題な のかを正確に伝える必要があるため、これはコンパイラにとって理にかなっています。

提案を提供する「lint」ツールがありますが、知る限り、ほとんどの開発者は lint ツールを定期的に、またはまったく使用していません。

エラー メッセージに対する「推奨される解決策」の部分が含まれているとうまくいく、開発者向けのソフトウェアが多数あります。これは、Eclipse などの IDE が持つ優れた機能の 1 つです。しかし、Web アプリケーション フレームワーク、標準/一般的なライブラリなどのソフトウェアには、この便利な機能がありません。

これは単にユーザー フレンドリーなデザインが欠けているだけなのでしょうか (Google が非常に優れているため、これは不要であると考えることができます)、それとも正当な理由があるのでしょうか? 使用しているコンパイラ、フレームワーク、プラットフォームでエラー メッセージに解決策の提案が表示されますか?もし表示されない場合、その理由は?

4

5 に答える 5

4

あなたは何が見たいですか?

Error: Null Pointer Exception (suggested solution: Set the object to something).

つまり、あなたを教育するのはエラーライターの仕事ではありません。私は正確な問題を指摘する単純なエラー メッセージを好むので、今度は何が原因なのかを自分で判断できます。私にとって、これは確かにサードパーティのツールの領域に属しています。おそらく、コンパイラは分析を行うために広範なコンテキストを提供することができますが、それは私が本当に価値があるとは思わないものです.

于 2009-11-26T04:11:05.170 に答える
1

コンパイラまたは実行時エラーから私が望む主なものは、コンテキストです。それはどこで発生し、失敗したときにどこから呼び出されたのかです。

ほとんどの最新のコンパイラとランタイム (Java、Ruby、Go) は、ほとんどのバグを見つけることができる行番号とスタック トレースを使用して、まともな仕事をしていると思います。Javascript オプションが改善されたとしても、デバッグに対する古き良き「alert()」アプローチに確実に勝っています。

提案された解決策を IDE に任せるのは十分に公正ではないでしょうか?

しかし、エラーメッセージが非常にまばらなフレームワーク/ライブラリを見たことがあることに同意します。ソースコードがないサードパーティライブラリの奥深くにある「264行目のNullPointerException」は、ほとんど何もないことを示しています。

これが問題である場合、主にサードパーティのライブラリに制限されていると思います。「正当な理由」はおそらく、誰かの空き時間に急いで開発されたものであり、意味のあるエラーメッセージを優先リストの上位に入れなかったということです。

于 2009-11-26T04:35:41.577 に答える
1

表示されているエラーの解決策が難しい。非常に多くの可能性があり、@silky が指摘したように、診断できないものもあります。

警告は別の獣です。多くの場合、最新のコンパイラはこれらを使用して、「Y と言ったときに X を意味していたと思います。それを確認することをお勧めします。」

于 2009-11-26T04:36:53.617 に答える
1

プログラミング言語には、ユーザー インターフェイスの点で究極の柔軟性を実現する機会があります。コンピューターにやりたいことを何でもさせることができます。コインの裏返しとして、1 文字でも間違って入力すると、どの軸に沿って、どこで間違ったのかがわからなくなる可能性があります。

柔軟性の低いシステムでは、問題に対するソリューションを提供する機会が増えます。Lisp コンパイラに (abc) と入力しても、a が何であるかがわからない場合、有効なコード行が非常に多く、単一の修正を正確に提案することはできません。COBOL プログラムの開始時に "IDENTIFICATION DIVISION" のスペルを間違えた場合、コンパイラがエラーを見つけて修正するのは比較的簡単です。他のほとんどの言語は、これらの両極端の間にあります。

プログラマーは、キャリアの中で、あまり強力ではなく構造化された言語から、より強力で柔軟な言語に移行する傾向があります。(少なくとも、Javascript が非常に人気のある初心者向け言語になる前に、私が見たのはそれでした。) これは、何をすべきかを指示されることを犠牲にして、強力なツールを使用できるようになるまで、彼らの規律が改善されたことを意味します。何を修正すべきかを教えてくれる私が使ってきた環境は、私が使いたくないものである傾向があります。

他の芸術となんら変わりません。ミュージシャン、画家、武道家、俳優、作家、シェフ、さらにはスペイン語を学んでいる人々を見てください。若くて経験の浅い人は、多くの構造があるシステムに入れられ、間違いを犯すと、誰かが簡単に修正できます。スキルが向上するにつれて、サポートの必要性と必要性​​はますます少なくなります。彼ら自身が専門家になったとき、彼らはサポートをまったく必要としませんが、コインの裏側は、何が正しいか間違っているかを簡単に指摘できないことです. 子供が線の外側に色を塗っている場合は、その問題を説明できますが、ピカソやポロックの筆遣いが下手だったら、あなたは何と言いますか? または、フィリップ・グラスが場違いなメモを置いた場合、それともブルース・リーが体をパンチに変えすぎた?そして、冒涜的なことが不可能なほど制限された芸術形式で働きたいと思う人がいるでしょうか? COBOL コンパイラーは、本当に必要な人がいればまだ存在しますが、見事な色ごとの印刷物よりもひどい絵にお金を払う人の方がはるかに多いのです。

より直接的には、エラーメッセージを入力して結果を取得できるサイトErrorHelp(旧bug.gd)があり、SOよりも古いですが、誰も使用していません. 私はもう試した。考えられる答えが 1 つしかない状況にない限り、単純な問題に遭遇してから提案された解決策の辞書は機能しません。したがって、それはどのクリエイティブ分野でも完全な失敗です。

于 2009-11-26T05:41:29.867 に答える
0

ほとんどの IDE には独自のコンパイラがあります。これにより、部分的なコンパイル、コードのリファクタリング、およびその他の多くのトリックを実行できます。エラーメッセージと提案は非常に役に立ちます。コンパイラがコマンド ラインで呼び出されないからといって、それがコンパイラではないというわけではありません。

代替テキスト
(ソース: theeggeadventure.com )

于 2009-11-26T04:56:11.520 に答える