-
Notifications
You must be signed in to change notification settings - Fork 24k
/
GuardedRunnable.java
38 lines (31 loc) · 1013 Bytes
/
GuardedRunnable.java
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
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
package com.facebook.react.bridge;
/**
* Abstract base for a Runnable that should have any RuntimeExceptions it throws handled by the
* {@link com.facebook.react.bridge.NativeModuleCallExceptionHandler} registered if the app is in
* dev mode.
*/
public abstract class GuardedRunnable implements Runnable {
private final NativeModuleCallExceptionHandler mExceptionHandler;
@Deprecated
public GuardedRunnable(ReactContext reactContext) {
this(reactContext.getExceptionHandler());
}
public GuardedRunnable(NativeModuleCallExceptionHandler exceptionHandler) {
mExceptionHandler = exceptionHandler;
}
@Override
public final void run() {
try {
runGuarded();
} catch (RuntimeException e) {
mExceptionHandler.handleException(e);
}
}
public abstract void runGuarded();
}