logo

Différentes façons d'imprimer un message d'exception en Java

Dans cette section, nous apprendrons comment imprimer des messages d'exception en Java en utilisant différentes méthodes de Java à lancer classe . La classe Throwable fournit les trois méthodes suivantes pour imprimer le message d'exception :

  • Utilisation de la méthode printStackTrace
  • Utilisation de la méthode getMessage()
  • Utilisation de la méthode toString()
Différentes façons d'imprimer un message d'exception en Java

Discutons un par un en détail.

Utilisation de la méthode printStackTrace()

Le printStackTrace() méthode est défini dans le Jetable classe qui appartient au package java.lang. La méthode imprime le nom, description (tel que / par zéro ), et le trace de la pile (numéro de ligne et nom de classe où l'exception a été déclenchée) d'une exception. La trace de pile trace l'endroit où se produit la prochaine exception. Il est largement utilisé pour imprimer le message d'exception.

Il existe trois versions de la méthode printStackTrace() :

rekha indien
Syntaxe Description
printStackTrace() La méthode imprime ce jetable et sa trace dans le flux d'erreurs standard.
public void printStackTrace (PrintStream s) La méthode imprime le jetable et sa trace vers le flux d'impression spécifié.
public void printStackTrace (PrintWriter s) La méthode imprime le jetable et sa trace jusqu'au rédacteur d'impression spécifié.

Pour comprendre le concept de la méthode printStackTrace(), nous allons d'abord créer un Java programme qui a soulevé une exception de division par zéro. Dans ce programme, nous n'utiliserons pas la méthode printStackTrace() pour imprimer l'exception.

PrintExceptionMessage1.java

 public class PrintExceptionMessage1 { //user defined method public static void divide() { try { //raised divide by zero exception int a = 100/0; } catch (Exception e) { //prints exception message System.out.println(e); } } //main() method public static void main(String args[]) { //calling user defined method divide(); } } 

Lorsque nous exécutons le programme ci-dessus, nous obtenons un exception arithmétique et le message suivant s'imprime sur la console :

Différentes façons d'imprimer un message d'exception en Java

Dans le message ci-dessus, nous ne pouvons pas indiquer quelle ligne lève une exception. Il est donc difficile de déterminer où se produisent les exceptions. Pour résoudre ce problème, nous utilisons la méthode printStackTrace(). Utilisons la méthode printStackTrace() dans un programme Java.

PrintExceptionMessage2.java

code de codage de Huffman
 public class ExceptionExample2 { //user defined method public static void divide() { try { //raised divide by zero exception int a = 100/0; } catch (Exception e) { //prints exception message and detail of the exception e.printStackTrace(); } } //main() method public static void main(String args[]) { //calling user defined method divide(); } } 

Exécutons le programme ci-dessus.

Différentes façons d'imprimer un message d'exception en Java

Le message d'exception ci-dessus montre clairement quelle méthode a déclenché une exception, de quel type d'exception il s'agit et quelle ligne lève une exception.

La première ligne du message montre que le programme lance un java.lang.ArithmeticException (diviser par zéro). La deuxième ligne montre que des exceptions se produisent à la ligne 9 et la méthode Divide() lève une exception. La troisième ligne montre cette exception à la ligne vingt-et-un . La méthode main() lève également une exception car la méthode Divide() est appelée à l'intérieur de la méthode main(). Par conséquent, en utilisant le printStackTrace() méthode, on peut facilement souligner la Localisation exacte de l'exception.

Utilisation de la méthode getMessage()

Le obtenirMessage() La méthode est également définie dans le Jetable classe qui appartient au package java.lang. La méthode imprime uniquement le message d'une exception. Il n'imprime ni le nom de l'exception ni la description. Il est largement utilisé pour imprimer le message d'exception.

Syntaxe:

 public String getMessage(); 

Il renvoie la chaîne de message détaillée de cette instance Throwable. Cela peut être nul.

Utilisons la méthode getMessage() dans un programme Java.

PrintExceptionMesssage3.java

 public class PrintExceptionMessage3 { public static void main(String args[]) { try { int a = 100/0; } catch (Exception e) { //prints only the message of the exception System.out.println(e.getMessage()); //use the following statement if you want to print name of the exception and which exception thrown //System.out.println(e); } } } 

Exécutons le programme ci-dessus.

Différentes façons d'imprimer un message d'exception en Java

On observe qu'il n'imprime que l'exception. Ainsi, il n’est pas largement utilisé car il n’imprime pas la description détaillée d’une exception.

Utilisation de la méthode toString()

Le àChaîne() méthode du Jetable la classe remplace la àChaîne() méthode de la classe Object. Il imprime la brève description d'une exception. Il n'affiche pas les autres informations (comme le nom de l'exception et la trace de la pile). Il n'est pas largement utilisé pour imprimer le message d'exception.

Utilisons la méthode toString() dans un programme Java.

PrintExceptionMessage4.java

 public class PrintExceptionMessage4 { public static void main(String args[]) { try { int a = 100/0; } catch (Exception e) { //we can use either of the statement to print the exception message //both prints the same message System.out.println(e.toString()); //System.out.println(e); } } } 

Exécutons le programme ci-dessus.

Différentes façons d'imprimer un message d'exception en Java

Dans le message ci-dessus, nous observons qu'il imprime uniquement le nom et le type de l'exception. Il n'indique pas à quelle ligne l'exception s'est produite.

TCP contre UDP

Nous avons vu les différentes manières d'imprimer le message d'exception en Java. Nous vous suggérons d'utiliser le printStackTrace() méthode car elle pointe vers l’emplacement où une exception se produit.