不,有重要区别!使用toString,您只有异常的类型和错误消息。使用printStackTrace()可以获得异常的整个堆栈跟踪,这对于调试非常有帮助。
System.out.println(toString())的示例:
java.io.FileNotFoundException: yourFile.txt (The system cannot find the file specified)
printStackTrace()的示例:
java.io.FileNotFoundException: yourFile.txt (The system cannot find the file specified)at java.io.FileInputStream.open(Native Method)at java.io.FileInputStream.(FileInputStream.java:106)at java.io.FileReader.(FileReader.java:55)at ReadFromFile.main(ReadFromFile.java:14)
要制作整个stacktrace的字符串,通常使用以下方法:
public static String exceptionStacktraceToString(Exception e){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(baos); e.printStackTrace(ps); ps.close(); return baos.toString();}
还要注意,简单地调用
toString()只会返回一个字符串,而不会输出任何内容。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)