Java >> Tutoriel Java >  >> Tag >> String

Trace de la pile d'impression Java vers la chaîne | Comment convertir un exemple de programme

L'utilisation de l'API Core Java pour imprimer la trace de la pile en chaînes fournit un moyen simple et efficace de convertir la trace de la pile en chaîne à l'aide de StringWriter and PrintWriter .

Une méthode printStackTrace() est utilisé pour obtenir des informations sur l'exception. Vous n'avez besoin d'aucune méthode spéciale pour convertir une trace de pile d'impression en chaîne. Dans le bloc d'exceptions try-catch-finally, nous l'avons fait de manière simple.

Exemple :Convertir et imprimer la trace de la pile en une chaîne

Ce programme lancera ArithmeticException en divisant 0 par 0.

StringWriter writer = new StringWriter();
PrintWriter printWriter= new PrintWriter(writer);
exception.printStackTrace(printWriter);

Code complet

Dans le code, Appeler writer.toString() fournira une trace de pile au format String.

Dans le bloc catch, StringWriter et PrintWriter impriment toute sortie donnée dans une chaîne. Nous imprimons ensuite la trace de la pile à l'aide de la méthode printStackTrace() de l'exception et l'écrivons dans le rédacteur.

import java.io.PrintWriter;
import java.io.StringWriter;

public class TryCatchBlock {

    public static void main(String[] args) {

        try {
            int a[] = new int[10];
            a[11] = 30 / 0;
        } catch (Exception e) {
            StringWriter writer = new StringWriter();
            PrintWriter printWriter= new PrintWriter(writer);
            e.printStackTrace(printWriter);
            System.out.println("Exception in String is :: " + writer.toString());
        }
        System.out.println("Remain codes");
    }
}

Sortie :

Nous ne pensons pas que vous ayez besoin de convertir une trace Stack car vous pouvez utiliser la méthode simple printStackTrace() ou imprimer une exception directe comme le code ci-dessous :-

public class TryCatchBlock {

    public static void main(String[] args) {

        try {
            int a[] = new int[10];
            a[11] = 30 / 0;
        } catch (Exception e) {
            // 1st Way
            e.printStackTrace();
            //  2nd way
            System.out.println(e);
        }
        System.out.println("Remain codes");
    }
}

Sortie :

N'hésitez pas à commenter si vous avez des doutes et des suggestions sur ce tutoriel.

Remarque : Cet exemple (Project) est développé dans IntelliJ IDEA 2018.2.6 (Community Edition)
JRE :11.0.1
JVM :VM serveur OpenJDK 64 bits par JetBrains s.r.o
mac OS 10.14.1
Java 11
Tous les codes de méthode Java printStackTrace() sont en Java 11, il peut donc changer selon Java 9 ou 10 ou les versions mises à niveau.


Balise Java