2016-10-27 2 views
0

コードのこの部分では、不正な式の開始エラーが発生します。例外をスローしている間に不正な式の開始がありますか?

switch(length) { 
    case 1: if(message.equalsIgnoreCase("End")){  
     throws new AnotherException("Stop",true); 
    } else { 
     throws new AnotherException("Continue",false); 
    } 
    break; 
} 

具体的に私は

throw new AnotherException 

を追加する場合、誰かが、それは、このエラーが発生した理由を説明できますか?ありがとう。

+0

「この部分は、」少し広い – Treycos

答えて

-1

スローの代わりにスローを使用します。 Throwsは、メソッドの先頭にスローされた例外の可能性を宣言するために使用されます。

yourMethod(...) throws AnotherException { 
    //stuff.... 

    switch(length) 
    { 
     case 1: if(message.equalsIgnoreCase("End")){  
        throw new AnotherException("Stop",true); 
       } 
       else{ 
        throw new AnotherException("Continue",false); 
       } break; 

    //stuff... 
} 
+0

この習慣はコンパイル.... –

+0

スローの違いを示すために、明らかに単なる一例である/スロー。 – kouljaboy

+0

ok、このコードは悪い例です –

0

あなたはthrowにキーワードthrowsを変更する必要があります。

例外をスローするときは、throwが使用され、throwsがメソッドシグネチャで使用され、そのメソッドからの予想される例外を示します。

変更throws new AnotherException("Continue",false);throw new AnotherException("Continue",false);

0

さまざまなエラーに:

  • throws AnotherException
  • 使用throwの代わりthrows
  • break statemenで例外を処理する必要がありますあなたの方法t 到達不能コードifの両側がExceptionを投げて解決するので、コンパイルができません。

だからあなたのコードはのようになります。

public static void main(String[] args) throws AnotherException { 
    String message = "End"; 
    int length = 1; 
    switch (length) { 
    case 1: 
     if (message.equalsIgnoreCase("End")) { 
      throw new AnotherException("Stop", true); 
     } else { 
      throw new AnotherException("Continue", false); 
     } 
    } 
} 
関連する問題