Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.02.2017, 18:44
illusion21 вне форума Посмотреть профиль Отправить личное сообщение для illusion21 Посетить домашнюю страницу illusion21 Найти все сообщения от illusion21
  № 1  
Ответить с цитированием
illusion21

Регистрация: Jul 2004
Сообщений: 113
По умолчанию 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, который висит на приложении в целом.
__________________
Играем в браузерный онлайн 3D бильярд тут - http://billiards3d.net

Старый 05.02.2017, 13:24
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 2  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Покажите строчку, на которой возникает exception.
Листенер не отлавливает ошибку IO_ERROR, потому что он только для асинхронных ошибок. Почитайте эту статью.

Старый 05.02.2017, 15:22
illusion21 вне форума Посмотреть профиль Отправить личное сообщение для illusion21 Посетить домашнюю страницу illusion21 Найти все сообщения от illusion21
  № 3  
Ответить с цитированием
illusion21

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

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

До этого по судя по логу сокет успешно подключился и передавались данные, а потом вдруг такое.
__________________
Играем в браузерный онлайн 3D бильярд тут - http://billiards3d.net

Старый 05.02.2017, 15:32
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 4  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
попробуй завернуть все, что относится к сокету в 3 слоя try/catch

Старый 05.02.2017, 15:35
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 5  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от undefined Посмотреть сообщение
попробуй завернуть все, что относится к сокету в 3 слоя try/catch
Почему не в 4?)

Можно подписаться на UncaughtErrorEvent
__________________
Ко мне можно и нужно обращаться на ты)

Старый 05.02.2017, 15:40
illusion21 вне форума Посмотреть профиль Отправить личное сообщение для illusion21 Посетить домашнюю страницу illusion21 Найти все сообщения от illusion21
  № 6  
Ответить с цитированием
illusion21

Регистрация: Jul 2004
Сообщений: 113
так подписан... именно UncaughtErrorEvent у меня эту ошибку и отлавливает... а вот листенер на сокете на эту самую IOError почему-то не отрабатывает.. хотя должен поидее. Разница в том что если бы листенер на сокете поймал эту ошибку то он бы сбросил сокет и создал новое подключение, а тут uncaughtError просто ловит факт что где-то произошла ошибка, у которой нет своего обработчика с предусмотренной для этого логикой поведения. У меня в приложении несколько сокетов к разным серверам и портам используются, а uncaughtErrorEvent даже не видит в каком конкретно такое произошло.. просто ошибка и все.. поэтому у меня приложение сворачивается с сообщением о критической ошибке для клиента.
__________________
Играем в браузерный онлайн 3D бильярд тут - http://billiards3d.net

Старый 05.02.2017, 15:43
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 7  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
а что-нибудь отваливается после ошибки? В плане функционала

Старый 05.02.2017, 16:54
illusion21 вне форума Посмотреть профиль Отправить личное сообщение для illusion21 Посетить домашнюю страницу illusion21 Найти все сообщения от illusion21
  № 8  
Ответить с цитированием
illusion21

Регистрация: Jul 2004
Сообщений: 113
у меня после uncaughtError закрывается приложение.. попробую игнорировать ошибку эту.. посмотрим может что-то поймается
__________________
Играем в браузерный онлайн 3D бильярд тут - http://billiards3d.net

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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