0

je reçois l'erreur suivante lors de la compilation:Je veux attraper InputMismatchException mais il montre erreur de compilation de temps

filimon.java:12: error: cannot find symbol 
       }catch(InputMismatchException ime){ 
        ^
    symbol: class InputMismatchException 
    location: class filimon 
1 error 

Mon code source est:

class filimon{ 
    public static void main(String[] args) { 
     Scanner s=new Scanner(System.in); 
     try{ 
      System.out.println("enter 2 integer values"); 
      int a=s.nextInt(); 
      int b=s.nextInt(); 
      System.out.println("value of a: "+a); 
      System.out.println("value of b: "+b); 
     }catch(InputMismatchException ime){ 
      System.err.println("please enter only number value"); 
     } 
     catch(Exception e){ 
      System.err.println(e); 
     } 
    }//main 
}//filimon 

Quel est le problème? Aidez-moi, s'il vous plaît.

+0

Quelles sont vos importations? –

+0

Sans doute, vous n'avez pas identifié au compilateur quel paquet contient le type 'InputMismatchException'. De plus, vous ne gérez pas l'exception, et 'catch (Exception e)' est un antipattern. S'il vous plaît suivez les conventions de nommage. –

Répondre

0

Ajouter une importation java.util.InputMismatchException;

0

Java ne peut pas trouver InputMismatchException car il n'est pas importé.

InputMismatchException est situé dans java.util.

En haut de votre fichier, écrire

import java.util.InputMismatchException; 

à importer simplement l'exception, ou

import java.util.*; 

pour importer tout java.util.

En sidenote, le

catch(Exception e) 

est pas une bonne idée. Il est préférable de lister chaque exception que vous souhaitez prendre, que ce soit dans son propre bloc catch, ou comme celui-ci:

catch(InputMismatchException|NoSuchElementException e){