2012-03-15 17 views
5
public class ThrowException { 
    public static void main(String[] args) { 
     try { 
      foo(); 
     } 
     catch(Exception e) { 
      if (e instanceof IOException) { 
       System.out.println("Completed!"); 
      } 
      } 
    } 
    static void foo() { 
     // what should I write here to get an exception? 
    } 
} 

こんにちは!私は例外を学び始めたので、誰かが私に解決策を教えてもらえますか? 私はとても感謝しています。 ありがとう!IOExceptionをスローする方法は?

+0

'foo'は何を、どのようにA''に関連していますか? –

+1

これは、基本的なJavaの構文であり、Javaの本や紹介はあなたに教えてくれます。私はいくつかをお読みください。 – ColinD

答えて

15
static void foo() throws IOException { 
    throw new IOException("your message"); 
} 
+0

私はこれをfooメソッドで書くべきですか? –

+0

はい。この行に達すると、例外がスローされます。 –

+1

例外をスローするには、fooメソッドを宣言する必要があることに注意してください。さもなければ、コンパイラエラー – ewok

6
try { 
     throw new IOException(); 
    } catch(IOException e) { 
     System.out.println("Completed!"); 
    } 
1
throw new IOException("Test"); 
1

私は例外を学び始め、この例外をキャッチする例外

throw new IOException("Something happened") 

をスローする例外

をキャッチする必要が良いとは限りませんベトナム語Exceptionを使用してください目標はfoo()メソッドから例外をスローする場合

try { 
    //code that can generate exception... 
}catch(IOException io) { 
    // I know how to handle this... 
} 
1

、あなたは次のように宣言する必要があります:auseは非常に一般的な、代わりに、あなたはどのように処理するかを知っている特定の例外をキャッチすることです

次に、あなたのメインで
public void foo() throws IOException{ 
    \\do stuff 
    throw new IOException("message"); 
} 

public static void main(String[] args){ 
    try{ 
     foo(); 
    } catch (IOException e){ 
     System.out.println("Completed!"); 
    } 
} 

なお、fooは1がコンパイルエラーになりますキャッチしようとすると、IOExceptionをスローするように宣言されていない限り。 catch (Exception e)instanceofを使用してコーディングすると、コンパイラーのエラーを防ぐことができますが、不要です。

0

は多分これは

注意きれいな方法は、以下の例では、例外をキャッチするのに役立ちます... - あなたはe instanceof IOExceptionは必要ありません。

public static void foo() throws IOException { 
    // some code here, when something goes wrong, you might do: 
    throw new IOException("error message"); 
} 

public static void main(String[] args) { 
    try { 
     foo(); 
    } catch (IOException e) { 
     System.out.println(e.getMessage()); 
    } 
} 
1

次のコードを試してみてください:

throw new IOException("Message"); 
関連する問題