如何让IntelliJ在使用Gradle时显示Kotlin异常信息?
让Gradle显示Kotlin应用抛出的具体异常信息
当你的Kotlin应用抛出IllegalArgumentException但Gradle仅返回进程非零退出码,看不到具体异常细节时,可以通过以下几种方法解决:
配置Gradle任务转发应用输出
在项目的build.gradle.kts(Kotlin DSL)或build.gradle(Groovy DSL)中添加配置,让Gradle直接把应用的标准输出和错误流打印到控制台:// Kotlin DSL tasks.withType<JavaExec> { standardOutput = System.out errorOutput = System.err }或者Groovy版本:
// Groovy DSL tasks.withType(JavaExec) { standardOutput = System.out errorOutput = System.err }配置完成后重新运行
run任务,就能看到应用抛出的异常堆栈信息。用Gradle命令行参数提升日志级别
直接在终端执行带日志参数的Gradle命令,获取更详细的运行信息:./gradlew run --info--info参数会输出足够定位问题的应用异常信息;如果需要更详尽的日志可以用--debug,但该参数会输出大量Gradle内部细节,一般--info已满足需求。调整IntelliJ的Run配置
在IntelliJ的Run/Debug Configurations中找到你的run任务:- 在"Arguments"输入框中添加
--info参数; - 切换到"Logs"标签页,勾选"Show output of: Java Exec"选项,确保应用的输出被捕获并显示在控制台。
- 在"Arguments"输入框中添加
在代码中添加全局异常捕获
如果以上方法仍不生效,可以在应用main函数中添加全局未捕获异常处理器,强制打印堆栈信息:fun main() { Thread.setDefaultUncaughtExceptionHandler { _, exception -> exception.printStackTrace(System.err) System.exit(1) } // 你的应用逻辑代码 }
内容的提问来源于stack exchange,提问作者axolotlKing0722
相关产品推荐
相关产品推荐

