Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Error #2031 (http://www.flasher.ru/forum/showthread.php?t=213859)

illusion21 04.02.2017 18:44

Error #2031
 
Всем привет.

Периодически приложение отлавливает Uncaught Error #2031
При этом сокет успешно приконнектился и на самом сокете казалось бы все необходимые листенеры прописаны:

Код AS3:

_socket.addEventListener(Event.CONNECT, onSocketConnected);
_socket.addEventListener(Event.CLOSE, onSocketDisconnected);
_socket.addEventListener(ProgressEvent.SOCKET_DATA, onSocketData);
_socket.addEventListener(IOErrorEvent.IO_ERROR, onSocketIOError);
_socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSocketSecurityError);

Вопрос знатокам - почему эту 2031 ошибку не отлавливает листенер на IOErrorEvent.IO_ERROR?
Функция onSocketIOError не выполняется, зато срабатывает обработчик UncaughtErrorEvent.UNCAUGHT_ERROR, который висит на приложении в целом.

alexandrratush 05.02.2017 13:24

Покажите строчку, на которой возникает exception.
Листенер не отлавливает ошибку IO_ERROR, потому что он только для асинхронных ошибок. Почитайте эту статью.

illusion21 05.02.2017 15:22

В том то и дело, что я не знаю в какой строчке это возникает, так как ошибка ловится через UncaughtErrorEvent... в логе вижу такое:

uncaught error: ErrorEvent (target:null, type:ioError), Error #2031

До этого по судя по логу сокет успешно подключился и передавались данные, а потом вдруг такое.

undefined 05.02.2017 15:32

попробуй завернуть все, что относится к сокету в 3 слоя try/catch

caseyryan 05.02.2017 15:35

Цитата:

Сообщение от undefined (Сообщение 1199057)
попробуй завернуть все, что относится к сокету в 3 слоя try/catch

Почему не в 4?)

Можно подписаться на UncaughtErrorEvent

illusion21 05.02.2017 15:40

так подписан... именно UncaughtErrorEvent у меня эту ошибку и отлавливает... а вот листенер на сокете на эту самую IOError почему-то не отрабатывает.. хотя должен поидее. Разница в том что если бы листенер на сокете поймал эту ошибку то он бы сбросил сокет и создал новое подключение, а тут uncaughtError просто ловит факт что где-то произошла ошибка, у которой нет своего обработчика с предусмотренной для этого логикой поведения. У меня в приложении несколько сокетов к разным серверам и портам используются, а uncaughtErrorEvent даже не видит в каком конкретно такое произошло.. просто ошибка и все.. поэтому у меня приложение сворачивается с сообщением о критической ошибке для клиента.

undefined 05.02.2017 15:43

а что-нибудь отваливается после ошибки? В плане функционала

illusion21 05.02.2017 16:54

у меня после uncaughtError закрывается приложение.. попробую игнорировать ошибку эту.. посмотрим может что-то поймается


Часовой пояс GMT +4, время: 17:42.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.