Java NoSuchElementException

J'ai donc une assez grande application java que j'ai écrit il y a un an et j'essaie de comprendre à nouveau. Je suis à la recherche d'une méthode dans le code où il y a un risque évident de se NoSuchElementException: je vais appeler .next() sur un scanner variable qui a été construit avec une chaîne de caractères arbitraire. La seule chose que la méthode est déclarée à jeter sont des sous-classes d'Exception. Le risqué de commande n'est pas écrit dans un fourre-block. Le code compile et fonctionne très bien et quand j'utilise mon gui de telle façon qu'il faut jeter un NoSuchElementException rien ne se passe :O

Comme un test, j'ai écrit un fourre-bloc dans le code compilé, a couru le gui et fait jeter NoSuchElementException de nouveau et l'application avec succès attiré l'exception et ont agi en conséquence. Comment est-ce que je peux compiler le code, sans préciser la cette exception peut être levée? Si c'est une utilisation à tous, voici le code sans le catch-bloc:

public static Expression interpret(final Scanner scanner)
  throws
    InvalidPosition,
    NoSuchSpreadsheet,
    IllegalStartOfExpression,
    InvalidExpression,
    FalseSyntax,
    InvalidRange {

String keyword = null;

try {
  keyword = scanner.next();
} catch (NoSuchElementException e) {
  throw new IllegalStartOfExpression();
}

switch(keyword) {
  case "Get":
    Position pos = PositionInterpreter.interpret(scanner.next());
    Expression expression = Application.instance.get(pos);
    if (expression instanceof Text) {
        System.out.println("Failure");
    } else { System.out.println("Success"); }
    return new Text(expression.toString());
  case "Int":
    return new Int(
      scanner.nextInt());

Comme vous pouvez le voir, la méthode suppose simplement qu'il y a plus d'un mot dans le scanner après vérification si il y a au moins une. Comment suis-je arriver de loin avec la compilation de ce?

  • Je ne vois pas où je déclare que la méthode de la lance Hunter, veuillez préciser
InformationsquelleAutor user2651804 | 2013-09-24