タグ付けされた質問 「warnings」

9
コンパイラの警告を無効にする必要があるのはなぜですか?
この回答とそれに追加されたコメントは、#pragmaディレクティブを使用していくつかのコンパイラ警告を無効にする方法を示しています。 なぜそれをしたいのでしょうか?通常、警告は理由があるので、私は常にそれらが正当な理由だと感じています。警告を無効にする「有効なケース」はありますか?今は何も考えられませんが、多分それは私だけです。
26 c#  c++  c  warnings 

3
警告や通知を避けるのは良い習慣ですか?
私は一般的にPHPの警告と通知に取り組んでいます。PHPが既に実稼働している多くのプロジェクトに取り組んでいるからです。これらのライブ制作Webサイトで警告と通知をオンにすると、それらは過負荷になります。 私が自宅や地元で取り組んでいるプロジェクトでは、通常、すべての警告と通知を排除しようとします。時々、通知がないという解決策がないので、それらを完全にオフにすることを決定するまで、通知を見て対処する必要があります。 結局、すべての警告と通知を取り除こうとして時間を無駄にしているのか、それとも実際にもっと良いことをしているのかはわかりません。 したがって、私の質問は、警告と通知を完全に回避することをお勧めしますか、それとも本当に重要ではありませんか?
20 php  warnings 

3
コードで抑制警告を使用することは良い習慣ですか?
私は@SuppressWarnings("unchecked")、@SuppressWarnings("null")ほとんどの場合上記の方法を使用して、警告なしでコードをコンパイルできるようにしていますが、疑問があります。このStackoverflowの質問が見つかりました。ジョン・スキートが興味深い答えを書いてくれました。 彼によると、 時々、Javaジェネリックスはあなたがやりたいことをさせないだけで、あなたがしていることが本当に実行時に合法であることをコンパイラに効果的に伝える必要があります。 しかし、例外がスローされる可能性がある場合はどうでしょうか?警告を抑制するのは悪い考えではありませんか?問題が表面化する可能性のある場所を意識する必要はありませんか? また、誰かが後で私のコードを変更し、SuppressWarningsを削除せずに疑わしい機能を追加した場合はどうなりますか?それをどのように回避できますか、および/またはこれに他の代替手段はありますか? 私が使用してしなければならない@SuppressWarnings("unchecked")と@SuppressWarnings("null")? アップデート#1 未チェックの型キャストに関する限り、この回答(以下のコメントで@gnatが指摘)によると、これらの警告を抑制することが必要です。 安全でない型キャストの必要性を排除するために、多くの不可欠なJavaライブラリが更新されたことはありません。これらの警告を抑制することは、他のより重要な警告に気づき修正するために必要です。 他の警告を抑制する場合は、まだ少し灰色の領域にあります。 アップデート#2 あたりとして、Oracleのドキュメント(以下もいくつかの回答で述べました): スタイルの問題として、プログラマーは常に、このアノテーションが最も効果的な場所で最も深くネストされた要素に使用する必要があります。特定のメソッドで警告を抑制したい場合は、クラスではなくそのメソッドに注釈を付ける必要があります。

7
なぜ未使用の変数がそのような問題なのですか?
ある日、未使用の変数の警告を消去していましたが、熟考し始めました。それらの問題は何ですか? 実際、それらの一部はデバッグにも役立ちます(例:例外の詳細を調べる、または返される前に戻り値を確認する)。 私はそれらを持っていることで本当の実際のリスクを見つけることができませんでした。 例 次のような他のプログラマーの注意を引く時間がかかる行を意味するのではありません。 int abc = 7; それは明らかな冗長性と注意散漫です。私は次のようなものを意味します: try { SomeMethod(); } catch (SomeException e) { // here e is unused, but during debug we can inspect exception details DoSomethingAboutIt(); }

5
レガシープロジェクトで警告に対処する方法
膨大な数の警告を生成するC ++プロジェクトに取り組んでいます。ほとんどの警告は、コードの作成後に表示されました。 当初、プロジェクトはVisual C ++ 8を使用し、間もなく9に切り替えましたが、生成された警告にほとんど違いがありません。警告は修正されるか沈黙されたので、そのとき警告はありませんでした。 次に、64ビットターゲットが追加されました。これは、主に型の不適切な使用(unsignedvsなどsize_t)のために、大量の警告を生成しました。コードが目的に沿って機能した後は、誰もそれらを修正するために悩んだり時間をかけたりすることはありませんでした。 次に、GCCを使用する他のプラットフォームのサポート(4.5および4.6、最初は4.4)が追加されました。GCCはよりうるさいので、より多くの警告を生成しました。再び、誰もそれらを修正するために悩んだり、時間をかけたりしませんでした。これは、GCCが4.5まで特定のコードの警告を沈黙させるプラグマを持っていなかったという事実によってさらに複雑になり、ドキュメントによると、それはまだ必要なものではありません。 その間、いくつかの非推奨の警告がポップアップしました。 これで、何千もの警告を生成するプロジェクトができました。また.cpp、さまざまなコンパイラーによってファイルが数回コンパイルされ、ヘッダーの警告が何度も出力されるため、どのくらいの数の場所であるかさえわかりません。 そのようなものをクリーンアップするためのベストプラクティスはありますか?それともそれを扱った少なくともいくつかの肯定的な経験ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.