Je suis en train de passer par un programme socket. Dans celui-ci, printStackTrace
est appelé sur l' IOException
objet dans le bloc catch.
Que fait printStackTrace()
réellement?
catch(IOException ioe)
{
ioe.printStackTrace();
}
Je ne connais pas son but. A quoi cela sert?
e.printStackTrace(); System.exit(1);
Ici, je veux poser la même question que l'OP, mais dans une veine différente: quel est exactement le but de cela? Le JRE n'imprimera-t-il pas automatiquement le stacktrace et se fermera-t-il lorsque l'exception est levée? Ie, il n'y a pas vraiment beaucoup de "gestion des exceptions" ici, non ??Réponses:
C'est une méthode sur les
Exception
instances qui imprime la trace de pile de l'instance surSystem.err
.C'est un outil très simple mais très utile pour diagnostiquer une exception. Il vous dit ce qui s'est passé et où dans le code cela s'est produit.
Voici un exemple de la façon dont il pourrait être utilisé dans la pratique:
la source
catch
blocs :-)throw new RuntimeException(e)
J'étais un peu curieux à ce sujet aussi, alors j'ai juste rassemblé un petit exemple de code où vous pouvez voir ce qu'il fait:
Appel
println(e)
:Appel
e.printStackTrace()
:la source
System.err.println(e);
sera plus approprié.Cela aide à retracer l'exception. Par exemple, vous écrivez des méthodes dans votre programme et l'une de vos méthodes provoque un bogue. Ensuite, printstack vous aidera à identifier la méthode à l'origine du bogue. Stack aidera comme ceci:
Tout d'abord, votre méthode principale sera appelée et insérée dans la pile, puis la deuxième méthode sera appelée et insérée dans la pile dans l'ordre LIFO et si une erreur se produit quelque part dans une méthode, cette pile aidera à identifier cette méthode.
la source
printStackTrace()
aide le programmeur à comprendre où le problème réel s'est produit.printStacktrace()
est une méthode de la classeThrowable
dejava.lang
package. Il imprime plusieurs lignes dans la console de sortie. La première ligne se compose de plusieurs chaînes. Il contient le nom de la sous-classe Throwable et les informations sur le package. À partir de la deuxième ligne, il décrit la position d'erreur / le numéro de ligne commençant parat
.La dernière ligne décrit toujours la destination affectée par l'erreur / l'exception. L'avant-dernière ligne nous informe de la ligne suivante dans la pile où le contrôle va après avoir obtenu le transfert du numéro de ligne décrit dans la dernière ligne. Les erreurs / exceptions représentent la sortie sous la forme d'une pile, qui ont été introduites dans la pile par la
fillInStackTrace()
méthode de laThrowable
classe, qui remplit elle-même les détails du transfert de contrôle du programme dans la pile d'exécution. Les lignes commençant parat
, ne sont que les valeurs de la pile d'exécution. De cette façon, le programmeur peut comprendre où se trouve dans le code le problème réel.Avec la
printStackTrace()
méthode, c'est une bonne idée à utilisere.getmessage()
.la source
printStackTrace()
imprime les emplacements où l'exception s'est produite dans le code source, permettant ainsi à l'auteur qui a écrit le programme de voir ce qui n'a pas fonctionné. Mais comme il présente des problèmes dans le code source, le ou les utilisateurs qui peuvent ou non avoir une expérience de codage peuvent ne pas être en mesure de comprendre ce qui ne va pas, donc si le programme permet à l'utilisateur d'envoyer des messages d'erreur aux auteurs, le les utilisateurs peuvent ne pas être en mesure de donner de bonnes données sur ce qui n'a pas fonctionné.Vous devriez considérer la
Logger.getLogger()
méthode, elle offre une meilleure fonction de gestion des exceptions (journalisation), et en plusprintStackTrace()
sans arguments, elle est considérée comme obsolète et ne doit être utilisée qu'à des fins de débogage, pas pour l'affichage de l'utilisateur.la source
Le
printStackTrace()
aide le programmeur à comprendre où le problème réel s'est produit. LaprintStackTrace()
méthode est membre de la classeThrowable
dans lejava.lang
package.la source
printStackTrace
est une méthode de laThrowable
classe. Cette méthode affiche un message d'erreur dans la console; où nous obtenons l'exception dans le code source. Ces méthodes peuvent être utilisées avec le bloc catch et elles décrivent:Les trois méthodes qui décrivent l'exception sur la console (dans laquelle printStackTrace est l'une d'entre elles) sont:
printStackTrace()
toString()
getMessage()
Exemple:
la source
printStackTrace () aide le programmeur à comprendre où le problème réel s'est produit. Cela aide à retracer l'exception. c'est la méthode printStackTrace () de la classe Throwable héritée par chaque classe d'exception. Cette méthode imprime le même message de l'objet e ainsi que le numéro de ligne où l'exception s'est produite.
Ce qui suit est un autre exemple de pile d'impression de l'exception en Java.
java.lang.Throwable: Ceci est une nouvelle exception en Java ... à ClassName.methodName (fileName: 5)
la source
À quoi sert la méthode e.printStackTrace () en Java?
Eh bien, le but de l'utilisation de cette méthode
e.printStackTrace();
est de voir ce qui ne va pas.Par exemple, nous voulons gérer une exception. Jetons un coup d'œil à l'exemple suivant.
J'ai utilisé une méthode
e.printStackTrace();
pour montrer exactement ce qui ne va pas.Dans la sortie, nous pouvons voir le résultat suivant.
la source
printStackTrace()
indique à quelle ligne vous obtenez une erreur et pourquoi vous obtenez une erreur.Exemple:
la source