ActionScript. Обработка событий ошибок безопасности при расширении сокета. - PullRequest
0 голосов
/ 11 октября 2010

Я создал класс расширения сокета. приведенный ниже псевдокод пытается установить соединение через сокет, используя переданные параметры. если есть ошибка безопасности, например, номер порта не является приемлемым номером порта, я хочу обработать ошибку безопасности.

однако я не могу уловить ошибку безопасности. появляется всплывающее окно с описанием ошибки, и моя функция errorHandler никогда не вызывается.

public class mySocket extends Socket
{
private var host:String;
private var port:int;

public function mySocket(host:String, port:int)
     {
     this.host = host;
     this.port = port;

     super();
     init();
     }

public init():void
     {
     addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler);
     super.connect(host, port);
     }

private function errorHandler(evt:SecurityErrorEvent):void
     {
     trace("Handle Error"); //doesn't get called when security error occurs
     }
}

1 Ответ

1 голос
/ 11 октября 2010

Вы, вероятно, получаете синхронный SecurityError (в отличие от SecurityErrorEvent, который является асинхронным). Метод connect выдает эту ошибку в соответствии с docs .

Если это так, вы должны обработать его с помощью блока try...catch.

public init():void
{
    addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler);
    try {
        super.connect(host, port);
    } catch(se:SecurityError) {
        //  handle synchronous security error here
    } catch(ioe:IOError) {
        //  handle synchronous io error here
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...