如何在Kotlin里自定义异常并打印堆栈?
时间: 2024-09-10 15:15:26 浏览: 21
在Kotlin中,自定义异常可以通过创建一个新的类,继承自`Exception`、`RuntimeException`或其他已有的异常类(如`IllegalArgumentException`等)。然后,你可以覆盖`toString()`和`cause`属性来提供自定义的消息,并允许包含额外的上下文信息。打印堆栈跟踪与使用内置异常类似,只需在抛出异常的地方调用`printStackTrace()`即可。
下面是一个简单的例子:
```kotlin
class CustomException(message: String, cause: Throwable? = null) : RuntimeException(message, cause) {
override fun toString(): String {
return "CustomException: $message\nCause: ${super.toString()}"
}
}
fun riskyOperation() {
try {
// 进行可能会失败的操作
} catch (e: CustomException) {
e.printStackTrace()
}
}
// 抛出自定义异常并打印堆栈
throw CustomException("An operation failed", SomeOriginalException())
```
在这个例子中,`riskyOperation()`函数可能会抛出`CustomException`,当异常被抛出时,堆栈跟踪会被打印出来。