4

ExceptionIOExceptionどちらもコンパイル時にチェックされる例外です。

ただし、IOExceptioncatch ブロック内では使用できません。ただし、Exceptioncatch ブロック内でその理由を使用できます。

    import java.io.*;
    class Demo{
        public static void main(String args[]){
            try{

            }catch(IOException e){ // Does not compile

            }

            try{

            }catch(Exception e){ // Compile

            }
        }
    }
4

3 に答える 3

9

Exception(または)を除いて、try ブロックでスローされないチェック済み例外をキャッチすることはできませんThrowable。この動作は、JLS のセクション 11.2.3で指定されています。

catch 句がチェック済み例外クラス E1 をキャッチできる場合はコンパイル時エラーであり、E1 が例外である場合を除き、catch 句に対応する try ブロックが E1 のサブクラスまたはスーパークラスであるチェック済み例外クラスをスローできる場合ではありません。 Exception または Exception のスーパークラス。

于 2015-09-08T17:25:52.923 に答える