# Kotlin 程序：将栈跟踪转换为字符串

> 原文： [https://www.programiz.com/kotlin-programming/examples/convert-stack-trace-string](https://www.programiz.com/kotlin-programming/examples/convert-stack-trace-string)

#### 在此程序中，您将学习在 Kotlin 中将栈跟踪转换为字符串。

## 示例：将栈跟踪转换为字符串

```kt
import java.io.PrintWriter
import java.io.StringWriter

fun main(args: Array<String>) {

    try {
        val division = 0 / 0
    } catch (e: ArithmeticException) {
        val sw = StringWriter()
        e.printStackTrace(PrintWriter(sw))
        val exceptionAsString = sw.toString()
        println(exceptionAsString)
    }

}
```

当您运行该程序时，输出将类似于以下内容：

```kt
java.lang.ArithmeticException: / by zero
	at StacktraceKt.main(stacktrace.kt:7)
```

在上面的程序中，我们通过将 0 除以 0 来强制程序抛出`ArithmeticException`。

在`catch`块中，我们使用`StringWriter`和`PrintWriter`将任何给定的输出打印到字符串中。 然后，使用异常的`printStackTrace()`方法打印栈跟踪，并将其写入编写器。

然后，我们只需使用`toString()`方法将其转换为字符串。

这是等效的 Java 代码：[将栈跟踪转换为字符串的 Java 程序](/java-programming/examples/convert-stack-trace-string "Java program to convert a stack trace to a string")。