2016-10-27 7 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

Используйте бросок вместо бросков. Броски используются, чтобы объявить о возможности брошенного исключения после главы метода.

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

ОК, этот код является плохим примером, потому что не компилируется, таким образом, не будет полностью решать вопрос –

0

Вы должны изменить ключевое слово throws к throw.

При метании исключения используется 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); 
     } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^