2016-03-21 5 views
0

Так я запрограммировал это исключение для лаборатории я делаю:Invalid Исключение

public class InvalidDNAException extends Exception{ 
    public InvalidDNAException(String message){ 
     super(message); 
     } 
} 

, а затем попытался поставить исключение в класс, я использую для лаборатории

try { for (int i=0;i<nucleo.length();i++){ 
     //code to be implemented later 
     else throw InvalidDNAException("Invalid DNA String"); 
     } 
} 
catch(InvalidDNAException e){ 
     System.out.print("Invalid string"); 
     System.exit(0); 
} 

I продолжайте получать сообщение об ошибке:

cannot find symbol 
    else throw InvalidDNAException("Invalid DNA String"); 
       ^
    symbol: method InvalidDNAException(String) 
    location: class DNA 

Я просто не создал исключение правильно или что я могу сделать, чтобы исправить это?

ответ

2

Вы забыли new:

else throw new InvalidDNAException("Invalid DNA String"); 
//   ^^^ this is important 

Кроме того, вы не должны просто выбросить исключение только, чтобы поймать его и System.exit в тот же метод. Если вы не собираетесь писать код для работы с проверяемым исключением должным образом, по крайней мере, завернуть его в непроверенного исключения, так что вы получите трассировку стека:

catch (InvalidDNAException e) { 
     // You really ought to do something better than this. 
     throw new RuntimeException(e); 
} 
0

Вы пропустили ключевое слово new. Измените строку

throw new InvalidDNAException("Invalid DNA String"); 
0

throw InvalidDNAException("Invalid DNA String"); не является допустимым синтаксисом

InvalidDNAException класс и вам нужно вызвать конструктор , выполнив:

throw new InvalidDNAException("Invalid DNA String"); 
Смежные вопросы