Langage

Throwable.PrintStackTrace Méthode

Définition

Surcharges

Nom Description
PrintStackTrace(PrintStream)

Imprime cette valeur levée et son backtrace dans le flux d’impression spécifié.

PrintStackTrace(PrintWriter)

Imprime cette valeur levée et son backtrace à l’enregistreur d’impression spécifié.

PrintStackTrace()

Imprime cette valeur levée et son backtrace dans le flux d’erreur standard.

PrintStackTrace(PrintStream)

Imprime cette valeur levée et son backtrace dans le flux d’impression spécifié.

[Android.Runtime.Register("printStackTrace", "(Ljava/io/PrintStream;)V", "GetPrintStackTrace_Ljava_io_PrintStream_Handler")]
public virtual void PrintStackTrace(Java.IO.PrintStream s);
[<Android.Runtime.Register("printStackTrace", "(Ljava/io/PrintStream;)V", "GetPrintStackTrace_Ljava_io_PrintStream_Handler")>]
abstract member PrintStackTrace : Java.IO.PrintStream -> unit
override this.PrintStackTrace : Java.IO.PrintStream -> unit

Paramètres

s
PrintStream

PrintStream à utiliser pour la sortie

Attributs

Remarques

Imprime cette valeur levée et son backtrace dans le flux d’impression spécifié.

Java documentation pour java.lang.Throwable.printStackTrace(java.io.PrintStream).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à

PrintStackTrace(PrintWriter)

Imprime cette valeur levée et son backtrace à l’enregistreur d’impression spécifié.

[Android.Runtime.Register("printStackTrace", "(Ljava/io/PrintWriter;)V", "GetPrintStackTrace_Ljava_io_PrintWriter_Handler")]
public virtual void PrintStackTrace(Java.IO.PrintWriter s);
[<Android.Runtime.Register("printStackTrace", "(Ljava/io/PrintWriter;)V", "GetPrintStackTrace_Ljava_io_PrintWriter_Handler")>]
abstract member PrintStackTrace : Java.IO.PrintWriter -> unit
override this.PrintStackTrace : Java.IO.PrintWriter -> unit

Paramètres

s
PrintWriter

PrintWriter à utiliser pour la sortie

Attributs

Remarques

Imprime cette valeur levée et son backtrace à l’enregistreur d’impression spécifié.

Ajouté dans la version 1.1.

Java documentation pour java.lang.Throwable.printStackTrace(java.io.PrintWriter).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à

PrintStackTrace()

Imprime cette valeur levée et son backtrace dans le flux d’erreur standard.

[Android.Runtime.Register("printStackTrace", "()V", "GetPrintStackTraceHandler")]
public virtual void PrintStackTrace();
[<Android.Runtime.Register("printStackTrace", "()V", "GetPrintStackTraceHandler")>]
abstract member PrintStackTrace : unit -> unit
override this.PrintStackTrace : unit -> unit
Attributs

Remarques

Imprime cette valeur levée et son backtrace dans le flux d’erreur standard. Cette méthode imprime une trace de pile pour cet Throwable objet sur le flux de sortie d’erreur qui est la valeur du champ System.err. La première ligne de sortie contient le résultat de la #toString() méthode pour cet objet. Les lignes restantes représentent les données précédemment enregistrées par la méthode #fillInStackTrace(). Le format de ces informations dépend de l’implémentation, mais l’exemple suivant peut être considéré comme classique : <blockquote>

java.lang.NullPointerException
                    at MyClass.mash(MyClass.java:9)
                    at MyClass.crunch(MyClass.java:6)
                    at MyClass.main(MyClass.java:3)

</blockquote> Cet exemple a été produit en exécutant le programme :

class MyClass {
                public static void main(String[] args) {
                    crunch(null);
                }
                static void crunch(int[] a) {
                    mash(a);
                }
                static void mash(int[] b) {
                    System.out.println(b[0]);
                }
            }

Le backtrace d’une cause initialisée et non Null doit généralement inclure le backtrace pour la cause. Le format de ces informations dépend de l’implémentation, mais l’exemple suivant peut être considéré comme classique :

HighLevelException: MidLevelException: LowLevelException
                    at Junk.a(Junk.java:13)
                    at Junk.main(Junk.java:4)
            Caused by: MidLevelException: LowLevelException
                    at Junk.c(Junk.java:23)
                    at Junk.b(Junk.java:17)
                    at Junk.a(Junk.java:11)
                    ... 1 more
            Caused by: LowLevelException
                    at Junk.e(Junk.java:30)
                    at Junk.d(Junk.java:27)
                    at Junk.c(Junk.java:21)
                    ... 3 more

Notez la présence de lignes contenant les caractères "...". Ces lignes indiquent que le reste de la trace de pile pour cette exception correspond au nombre indiqué d’images du bas de la trace de pile de l’exception provoquée par cette exception (exception « englobante »). Ce raccourci peut réduire considérablement la longueur de la sortie dans le cas courant où une exception encapsulée est levée à partir de la même méthode que l'« exception causative » est interceptée. L’exemple ci-dessus a été produit en exécutant le programme :

public class Junk {
                public static void main(String args[]) {
                    try {
                        a();
                    } catch(HighLevelException e) {
                        e.printStackTrace();
                    }
                }
                static void a() throws HighLevelException {
                    try {
                        b();
                    } catch(MidLevelException e) {
                        throw new HighLevelException(e);
                    }
                }
                static void b() throws MidLevelException {
                    c();
                }
                static void c() throws MidLevelException {
                    try {
                        d();
                    } catch(LowLevelException e) {
                        throw new MidLevelException(e);
                    }
                }
                static void d() throws LowLevelException {
                   e();
                }
                static void e() throws LowLevelException {
                    throw new LowLevelException();
                }
            }

            class HighLevelException extends Exception {
                HighLevelException(Throwable cause) { super(cause); }
            }

            class MidLevelException extends Exception {
                MidLevelException(Throwable cause)  { super(cause); }
            }

            class LowLevelException extends Exception {
            }

À compter de la version 7, la plateforme prend en charge la notion d’exceptions supprimées (conjointement avec l’instruction try-with-resources). Toutes les exceptions qui ont été supprimées pour remettre une exception sont imprimées sous la trace de la pile. Le format de ces informations dépend de l’implémentation, mais l’exemple suivant peut être considéré comme classique :

Exception in thread "main" java.lang.Exception: Something happened
             at Foo.bar(Foo.java:10)
             at Foo.main(Foo.java:5)
             Suppressed: Resource$CloseFailException: Resource ID = 0
                     at Resource.close(Resource.java:26)
                     at Foo.bar(Foo.java:9)
                     ... 1 more

Notez que le " ... n more" notation est utilisée sur les exceptions supprimées, tout comme elle est utilisée sur les causes. Contrairement aux causes, les exceptions supprimées sont mises en retrait au-delà de leurs « exceptions contenantes ».

Une exception peut avoir une cause et une ou plusieurs exceptions supprimées :

Exception in thread "main" java.lang.Exception: Main block
             at Foo3.main(Foo3.java:7)
             Suppressed: Resource$CloseFailException: Resource ID = 2
                     at Resource.close(Resource.java:26)
                     at Foo3.main(Foo3.java:5)
             Suppressed: Resource$CloseFailException: Resource ID = 1
                     at Resource.close(Resource.java:26)
                     at Foo3.main(Foo3.java:5)
            Caused by: java.lang.Exception: I did it
             at Foo3.main(Foo3.java:8)

De même, une exception supprimée peut avoir une cause :

Exception in thread "main" java.lang.Exception: Main block
             at Foo4.main(Foo4.java:6)
             Suppressed: Resource2$CloseFailException: Resource ID = 1
                     at Resource2.close(Resource2.java:20)
                     at Foo4.main(Foo4.java:5)
             Caused by: java.lang.Exception: Rats, you caught me
                     at Resource2$CloseFailException.&lt;init&gt;(Resource2.java:45)
                     ... 2 more

Java documentation pour java.lang.Throwable.printStackTrace().

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à