5

Java のチェック済みおよび未チェックの例外に関する記事を読んでいて、この記事/リンクを見つけました: https://projectlombok.org/disableCheckedExceptions.html

記事によると、これは javac 用に開発された単なるハックです。

以下のコード スニペットを検討してください。

import java.io.*;
class Example
{  
    public static void main(String args[]) throws IOException
    {
        FileInputStream fis = null;
        fis = new FileInputStream("myfile.txt"); 
        int k; 

        while(( k = fis.read() ) != -1) 
        { 
            System.out.print((char)k); 
        } 
        fis.close();    
    }
}

public static void main(String args[]) throws IOException ファイルを開こうとしているので、ここに書く必要が あります。ここで「throws」句は必須です。それがないとエラーになります。開いているファイルの存在について確信がある場合はどうなりますか。上記の場所にあるiemyfile.txt。ある時点で、コードに不要なチェック済み例外がほとんどないことがわかります。

必要に応じてチェック済みの例外を無効にするためにJavaが提供する機能はありますか?

これだけ調べても、なかなか答えが出ませんでした。

4

3 に答える 3

2

コンパイラをハッキングする以外に、私が知っているチェック済み例外を無効にするオプションはありません。クライアント コードでチェック済み例外を強制的に処理したくない場合は、チェック済み例外をキャッチし、実行時例外内で再スローすることをお勧めします。

于 2016-11-24T21:03:58.237 に答える
1

プラグイン オプションでManifoldコンパイラ プラグインを使用しexceptionsます。チェックされた例外を効果的に中和します。このオプションを使用すると、チェックされた例外はチェックされていない例外のように動作します。コンパイラ エラーやボイラープレートの try/catch/wrap/rethrow のナンセンスはもうありません。Java 8 ~ 12 で動作します。

于 2019-03-30T01:04:05.253 に答える