0

私は次のような設定をしています...

public class MyClass {
   Exception e = null;   

   try {
      Game.runItNow();
   } catch (Exception e) {
      this.e = e;
   }

   if (this.e == null) {
      showError();
   }
}

public class Game {
    public static void runItNow() throws IOException {
       try {
          HttpManager.getData()
       } catch(IOException e) {
          // here, e = null
          throw e;
       }
    }
}

public class HttpManager {    

    public static String getData() throws IOException {
       String someData = "The fox is brown";
       String someWord = "fox";

       if (someData.contains(someWord)) {
          throw new IOException();
       }

       return someData;
    }
}

問題は、IO例外をキャッチしたときですe == null.. 脳のおならがあるかどうかはわかりませんが、かなり混乱しています. なぜe == nullですか?私はそれの新しいインスタンスを投げています。

4

2 に答える 2

0

上記のコードが実際に持っているものである場合、それが機能していないのも不思議ではありません。あなたMyClassは適切なクラスではありません。静的ブロック、mainメソッド、またはそのコードを含むコンストラクターが必要です。

そのコードを含むコンストラクター、またはmainメソッドを作成すると、問題なく機能します。

public class MyClass {

   public static void main(String[] args) {
       Exception e = null;   

       try {
          Game.runItNow();
       } catch (Exception e) {
          this.e = e;
       }

       if (this.e == null) {
          showError();
       }
   }
}
于 2012-07-10T19:21:18.617 に答える
-1

例外なしで新しい IOException で生成された IOException を上書きしています。

于 2012-07-10T19:01:16.140 に答える