2015-11-28 3 views
1

Je suis un débutant en Java.Lancer des exceptions en dehors d'une méthode - Java

Je déclare une méthode comme public void method() throws Exception, mais chaque fois que je tente d'appeler cette méthode dans une autre zone de la même classe en utilisant method();, je reçois une erreur:

Error: unreported exception java.lang.Exception; must be caught or declared to be thrown 

Comment puis-je utiliser cette méthode sans obtenir cette erreur?

+0

Lorsque vous appelez cette méthode, vous devez soit entourer l'appel avec un try-catch, soit renvoyer l'exception. – azurefrog

+0

@azurefrog à droite, donc j'appellerais 'méthode() throws Exception;'? –

Répondre

5

Dans l'autre méthode qui appelle method(), vous devrez gérer en quelque sorte l'exception que method() lance. À un moment donné, il doit être détecté ou déclaré jusqu'à la méthode main() qui a démarré l'ensemble du programme. Alors, que ce soit attraper l'exception:

try { 
    method(); 
} catch (Exception e) { 
    // Do what you want to do whenever method() fails 
} 

ou déclarer dans votre autre méthode:

public void otherMethod() throws Exception { 
    method(); 
} 
0

Vous devez entourer l'appel method() avec un bloc try-catch un peu comme ceci:

Ou vous pouvez ajouter un throws à la méthode dans laquelle method() est appelée.
exemple:

public void callingMethod() throws Exception { 
    method(); 
} 
3

mot clé throws est utilisé pour déclarer une exception. et throw keyword est utilisé pour lancer explicitement une exception. si tu veux définir un utilisateur définit alors .... exception

class exps extends Exception{ 
exps(String s){ 
    super(s); 
} 
} 

class input{ 
input(String s) throws exps { 
    throw new exps(s); 
} 

} 

public class exp{ 
public static void main(String[] args){ 
    try{ 
     new input("Wrong input"); 
    }catch(exps e){ 
     System.out.println(e.getMessage()); 
    } 
    } 
} 

Java bloc try est utilisé pour joindre le code qui pourrait lancer une exception. Il doit être utilisé dans la méthode.