diff --git a/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/safeUtil.kt b/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/safeUtil.kt index 2218d83e1a3..0a34842b9a6 100644 --- a/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/safeUtil.kt +++ b/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/safeUtil.kt @@ -68,15 +68,15 @@ fun StackFrameProxy.safeStackFrame(): StackFrame? { } fun Location.safeSourceName(): String? { - return wrapAbsentInformationException { this.sourceName() } + return wrapIllegalArgumentException { wrapAbsentInformationException { this.sourceName() } } } fun Location.safeSourceName(stratum: String): String? { - return wrapAbsentInformationException { this.sourceName(stratum) } + return wrapIllegalArgumentException { wrapAbsentInformationException { this.sourceName(stratum) } } } fun Location.safeLineNumber(): Int { - return DebuggerUtilsEx.getLineNumber(this, false) + return wrapIllegalArgumentException { DebuggerUtilsEx.getLineNumber(this, false) } ?: -1 } fun Location.safeLineNumber(stratum: String): Int { @@ -118,6 +118,14 @@ private inline fun wrapEvaluateException(block: () -> T): T? { } } +private inline fun wrapIllegalArgumentException(block: () -> T): T? { + return try { + block() + } catch (e: IllegalArgumentException) { + null + } +} + private inline fun wrapAbsentInformationException(block: () -> T): T? { return try { block()