Skip to content

Commit 7e3cba7

Browse files
committed
better error handling
1 parent f65658b commit 7e3cba7

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

lib/bridge/binding.dart

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,8 @@ class Binding {
2727
}
2828

2929
static void callBridge(IsolateArguments args) async {
30-
try {
31-
var result = await Binding().call(args.name, args.payload);
32-
args.port.send(result);
33-
} catch (e) {
34-
args.port.send(e.toString());
35-
}
30+
var result = await Binding().call(args.name, args.payload);
31+
args.port.send(result);
3632
}
3733

3834
Future<Uint8List> callAsync(String name, Uint8List payload) async {
@@ -43,16 +39,19 @@ class Binding {
4339
final isolate = await Isolate.spawn(
4440
callBridge,
4541
args,
46-
errorsAreFatal: true,
42+
errorsAreFatal: false,
4743
debugName: '${_libraryName}_isolate',
44+
onError: port.sendPort,
4845
);
4946

5047
port.listen(
5148
(message) async {
52-
if (message is String) {
53-
completer.completeError(message);
54-
} else {
49+
if (message is Uint8List) {
5550
completer.complete(message);
51+
} else if (message is List) {
52+
completer.completeError(message.firstOrNull ?? "internal error");
53+
} else {
54+
completer.completeError(message ?? "spawn error");
5655
}
5756
port.close();
5857
},

0 commit comments

Comments
 (0)