Skip to content

Commit e083530

Browse files
committed
Catch Coroutines errors while getting all threads stacktraces
1 parent 30755a2 commit e083530

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

dd-sdk-android-core/src/main/kotlin/com/datadog/android/error/internal/DatadogExceptionHandler.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,13 @@ internal class DatadogExceptionHandler(
146146
private fun safeGetAllStacktraces(): Map<Thread, Array<StackTraceElement>> {
147147
return try {
148148
Thread.getAllStackTraces()
149-
} catch (e: SecurityException) {
149+
} catch (@Suppress("TooGenericExceptionCaught") t: Throwable) {
150+
// coroutines machinery can throw errors here
150151
sdkCore.internalLogger.log(
151152
InternalLogger.Level.ERROR,
152153
InternalLogger.Target.MAINTAINER,
153154
{ "Failed to get all threads dump" },
154-
e
155+
t
155156
)
156157
emptyMap()
157158
}

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/anr/ANRDetectorRunnable.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,13 @@ internal class ANRDetectorRunnable(
9999
private fun safeGetAllStacktraces(): Map<Thread, Array<StackTraceElement>> {
100100
return try {
101101
Thread.getAllStackTraces()
102-
} catch (e: SecurityException) {
102+
} catch (@Suppress("TooGenericExceptionCaught") t: Throwable) {
103+
// coroutines machinery can throw errors here
103104
sdkCore.internalLogger.log(
104105
InternalLogger.Level.ERROR,
105106
InternalLogger.Target.MAINTAINER,
106107
{ "Failed to get all stack traces." },
107-
e
108+
t
108109
)
109110
emptyMap()
110111
}

0 commit comments

Comments
 (0)