Cannot catch SocketException Cannot catch SocketException dart dart

Cannot catch SocketException


Asynchronous errors can't be caught using try/catch (https://www.dartlang.org/docs/tutorials/futures/) at least unless you are using async/await (https://www.dartlang.org/articles/await-async/)

See also https://github.com/dart-lang/sdk/issues/24278

You can use the done future on the WebSocket object to get that error, e.g.:

import 'dart:async';import 'dart:io';main() async {  // Connect to a web socket.  WebSocket socket = await WebSocket.connect('ws://echo.websocket.org');  // Setup listening.  socket.listen((message) {    print('message: $message');  }, onError: (error) {    print('error: $error');  }, onDone: () {    print('socket closed.');  }, cancelOnError: true);  // Add message, and then an error.  socket.add('echo!');  socket.addError(new Exception('error!'));  // Wait for the socket to close.  try {    await socket.done;    print('WebSocket donw');  } catch (error) {    print('WebScoket done with error $error');  }}


You can specify SocketException

try {  //network request} on SocketException catch (_) {  //handle socket exception here} catch (_) {  //handle other error}