2017-12-16 12 views
-3

例外が発生した例外に以下のコードのような特定の単語が含まれているかどうかを確認しようとしていますが、IDEは '例外'型の 'contains()'メソッドが定義されていません。どうすればいい?Java例外に関するメソッドが含まれています

public static void main(String[] args) throws Exception { 
    try { 
    // blah blah 
    } catch (Exception z) { 
    if (z.contains("UnknownHostException")) { 
     System.out.print("Unknown Host"); 
    } 
    // blah blah 
    } 
} 
+1

なぜ '例外 'クラスに' contains'メソッドがあると思いますか?あなたはそのアイデアをどこで手に入れましたか? **ドキュメント[** Exception'](https://docs.oracle.com/javase/9​​/docs/api/java/lang/Exception.html)のjavadocを読んでいますか? – Andreas

+1

「UnknownHostException」をキャッチしようとしないのはなぜですか? –

答えて

2

私はあなたが例外メッセージ検査しようとしていると思う:

z.getMessage().contains("UnknownHostException") 

をしかし、一般的に、あなたは直接あなたがキャッチしたい例外のタイプを指定します。このような何か:

try { 
    // some code 
} catch (UnknownHostException e) { 
    System.out.print("Unknown Host"); 
} catch (Exception other) { 
    // other exceptions go here 
} 

は、特にThe catch Blocksthisを参照してください。

2
​​3210

しかし、あなたは、単に例外の型チェックしている場合のことを行いません。あなたがで混乱していないようにするために

} catch (UnknownHostException z) { 

:直接キャッチUnknownHostExceptionをメッセージの例外:例:

I am not an UnknownHostException. 

Exception(oあなたが呼んでいるメソッドがの場合はExceptionです。フレームワークメソッドでない限り、メソッドはほとんどExceptionを投げてはなりません。

関連する問題