zoukankan      html  css  js  c++  java
  • catch SocketException

    https://stackoverflow.com/questions/32810051/cannot-catch-socketexception/32810079#32810079

    https://github.com/dart-lang/sdk/issues/25518

    2
     

    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');
      }
    }
    

      

    I get your point, but I don't understand why this is an asynchronous error. I mean, you get this error before starting to actually asynchronously listen to requests, right? – Alexandr Sep 27 '15 at 16:41
    1
    HttpServer.bind() is already async (returns a Future<HttpServer>) – Günter Zöchbauer Sep 27 '15 at 16:43
    You are right, Gunter. Thank you for this! – Alexandr Sep 28 '15 at 5:35

  • 相关阅读:
    tiled工具使用
    shan
    随笔
    潘大神又一篇
    潘大神的文章
    最近用到这个强大的工具 PhysicsEditor (转)
    为什么要写博客?
    nyoj 998
    欧拉函数
    背包问题
  • 原文地址:https://www.cnblogs.com/pythonClub/p/10826342.html
Copyright © 2011-2022 走看看