CrashlyticsUncaughtExceptionHandler.java
1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.crashlytics.android.core;
import io.fabric.sdk.android.Fabric;
import io.fabric.sdk.android.Logger;
import java.util.concurrent.atomic.AtomicBoolean;
class CrashlyticsUncaughtExceptionHandler
implements Thread.UncaughtExceptionHandler
{
private final CrashListener crashListener;
private final Thread.UncaughtExceptionHandler defaultHandler;
private final AtomicBoolean isHandlingException;
public CrashlyticsUncaughtExceptionHandler(CrashListener paramCrashListener, Thread.UncaughtExceptionHandler paramUncaughtExceptionHandler)
{
this.crashListener = paramCrashListener;
this.defaultHandler = paramUncaughtExceptionHandler;
this.isHandlingException = new AtomicBoolean(false);
}
boolean isHandlingException()
{
return this.isHandlingException.get();
}
public void uncaughtException(Thread paramThread, Throwable paramThrowable)
{
this.isHandlingException.set(true);
try
{
this.crashListener.onUncaughtException(paramThread, paramThrowable);
return;
}
catch (Exception localException)
{
Fabric.getLogger().e("CrashlyticsCore", "An error occurred in the uncaught exception handler", localException);
return;
}
finally
{
Fabric.getLogger().d("CrashlyticsCore", "Crashlytics completed exception processing. Invoking default exception handler.");
this.defaultHandler.uncaughtException(paramThread, paramThrowable);
this.isHandlingException.set(false);
}
}
static abstract interface CrashListener
{
public abstract void onUncaughtException(Thread paramThread, Throwable paramThrowable);
}
}
/* Location: /home/merong/decompile/hackery-dex2jar.jar!/com/crashlytics/android/core/CrashlyticsUncaughtExceptionHandler.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 0.7.1
*/