fix: Correctly throws final error when connection fails. (#214)

* fix: Correctly throws final error when connection fails.

* update.

* update.
This commit is contained in:
CloudWebRTC
2022-12-05 08:51:44 +08:00
committed by GitHub
parent 06783cad5c
commit 833fd658b2
2 changed files with 7 additions and 8 deletions
+6 -7
View File
@@ -90,6 +90,7 @@ class SignalClient extends Disposable with EventsEmittable<SignalEvent> {
_updateConnectionState(ConnectionState.connected);
} catch (socketError) {
// Attempt Validation
var finalError = socketError;
try {
// Skip validation if reconnect mode
if (reconnect) rethrow;
@@ -106,17 +107,15 @@ class SignalClient extends Disposable with EventsEmittable<SignalEvent> {
final validateResponse = await http.get(validateUri);
if (validateResponse.statusCode != 200) {
throw ConnectException(validateResponse.body);
finalError = ConnectException(validateResponse.body);
}
throw ConnectException();
} catch (error) {
// Pass it up if it's already a `ConnectError`
if (error is ConnectException) rethrow;
// HTTP doesn't work either
throw ConnectException();
if (socketError.runtimeType != error.runtimeType) {
finalError = error;
}
} finally {
_updateConnectionState(ConnectionState.disconnected);
rethrow;
throw finalError;
}
}
}
+1 -1
View File
@@ -4,7 +4,7 @@ abstract class LiveKitException implements Exception {
const LiveKitException._(this.message);
@override
String toString() => 'LiveKit Exception $runtimeType $message';
String toString() => 'LiveKit Exception: [$runtimeType] $message';
}
/// An exception occured while attempting to connect.