使用 Exception.printStackTrace()
try {
val division = 0 / 0
} catch (e: ArithmeticException) {
e.printStackTrace()
}
处理异常时,可以通过 Exception 的 printStackTrace() 方法打印调用栈。
使用 Thread.getStackTrace()
fun Thread.printStackTrace() {
for (element in stackTrace) {
println(element)
}
}
使用 Kotlin 时可以为 Thread 定义一个扩展函数输出调用栈,方便使用:
Thread.currentThread().printStackTrace()
在 Java 中使用 Thread 打印调用栈:
public static void printStackTrace() {
for (StackTraceElement e : Thread.currentThread().getStackTrace()) {
System.out.println(e);
}
}