Javaでは、tryブロックにスローされない例外をキャッチするのはコンパイル時エラーですが、コンパイル時エラーではありませんたとえそのメソッドが実際にその例外をスローできない場合でも、スローされたチェック例外をメソッド内で宣言します。メソッドが宣言されたチェック例外をスローできない場合にJavaコンパイラを設定します
しかし、eclipseでは、これをコンパイラの設定(http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Fjava%2Fcompiler%2Fref-preferences-errors-warnings.htm)で変更することができます。
コンパイラフラグを使用して標準のJavaコンパイルプロセス中にこの同じ動作を実行できますか?具体的には、このチェックをmavenビルドに統合したいと考えています。宣言されていない例外は、不要なcatchブロック、エラーハンドラ、単体テストを生成し、既存のコードのさらなるデバッグと拡張を邪魔し、これらの例外をキャッチしてテストする無駄な、不要な努力をもたらします。
Javaコンパイラを使用して「クリーン」なコーディング標準を適用できますか?
私は、チェックされたチェックされていない例外のスロー宣言は私の質問から暗黙で明確であると思っていましたが、再読み込み後、あなたは正しいです。私はそれを明示しなかった。 –
悲しいことに、-Xlintを指定しても、すべてのjavacがエラーなしで次のメソッドをコンパイルします。 パブリッククラスMyClass { public void test()throws java.io.IOException { System.err.println( "例外はありません!"); } } –
私はそれが起こると思いました。 –