
{filelink=4384}
public class StackTrace {
public static boolean displayStackTraceInformation(Throwable ex) {
ex.printStackTrace();
StackTraceElement[] stackElements = ex.getStackTrace();
System.out.println("Le " + stackElements.length + " element"
+ ((stackElements.length == 1) ? "" : "s") + " de stack trace:");
for (int lcv = 0; lcv < stackElements.length; lcv++) {
System.out.println("Nom du Fichier: " + stackElements[lcv].getFileName());
System.out.println("Numéro de ligne: " + stackElements[lcv].getLineNumber());
String className = stackElements[lcv].getClassName();
String NomPackage = extraireNomPackage(className);
String NomClasseAbreg = extraireNomClasseAbreg(className);
System.out.println("Nom du Package: " + ("".equals(NomPackage) ? "[default package]" : NomPackage));
System.out.println("Nom complet de la classe: " + className);
System.out.println("Nom abrégé de la classe: " + NomClasseAbreg);
System.out.println("Nom Direct de la classe: " + extraireDirectClassName(NomClasseAbreg));
System.out.println("Nom de la méthode: " + stackElements[lcv].getMethodName());
System.out.println("Une Méthode native?: " + stackElements[lcv].isNativeMethod());
System.out.println("toString(): " + stackElements[lcv].toString());
System.out.println("");
}
return true;
}
public static String extraireNomPackage(String nomCompletClasse) {
if ((null == nomCompletClasse) || ("".equals(nomCompletClasse)))
return "";
int dernierPoint = nomCompletClasse.lastIndexOf('.');
if (0 >= dernierPoint)
return "";
return nomCompletClasse.substring(0, dernierPoint);
}
public static String extraireNomClasseAbreg(String nomCompletClasse) {
if ((null == nomCompletClasse) || ("".equals(nomCompletClasse)))
return "";
int dernierPoint = nomCompletClasse.lastIndexOf('.');
if (0 > dernierPoint)
return nomCompletClasse;
return nomCompletClasse.substring(++dernierPoint);
}
public static String extraireDirectClassName(String NomClasseAbreg) {
if ((null == NomClasseAbreg) || ("".equals(NomClasseAbreg)))
return "";
int dernierSigne = NomClasseAbreg.lastIndexOf('$');
if (0 > dernierSigne)
return NomClasseAbreg;
return NomClasseAbreg.substring(++dernierSigne);
}
}