Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Подписаться на любую ошибку (http://www.flasher.ru/forum/showthread.php?t=147782)

micromacro 14.12.2010 05:30

Подписаться на любую ошибку
 
Подскажите пожалуйста как подписаться на любую необработанную ошибку, которая вываливается пользователю в браузере. И как не показывать юзверю это? Хочу потом отправлять её на сервер.

bav 14.12.2010 10:29

Заключите код, который может выдавать ошибку, в блок try { erroneous code } catch (error:Error) { error handler code }. Если в этом блоке возникнет ошибка, выполнится код в блоке catch. В нем уже можете любопытствовать свойством error.message. Про класс Error и его подклассы написано в хелпе.

Dukobpa3 14.12.2010 11:04

Не сработает если например ошибка будет в лоадере.

Делаем loader.load() - ошибки нету. Но в процессе загрузки может оказаться неверный урл или еще куча всякой лабуды типа прав доступа.
Так что подписка всё-равно нужна.

КорДум 14.12.2010 11:10

Что мешает подписаться ручками? Ошибок не так уж и много. Штуки 2-4 на лоадер. А другие, это какие например? RTE при addChiln(null)? Или при неопреденном stage? За этим должен следить кодер.

gloomyBrain 14.12.2010 11:36

Будет работать только под FlashPlayer 10.1 и выше
Код AS3:

public class Main {
 
...
 
// добавляем слушателя на все непойманные ранее ошибки
this.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler);
 
private function uncaughtErrorHandler(event:UncaughtErrorEvent ):void {
 
trace("Какая-то ошибка в нашем swf-файле!")
 
}

@КорДум
Цитата:

Ошибок не так уж и много. Штуки 2-4 на лоадер
Я видел только 2. Это SecurityError и IOError. Есть еще какие-то?

nOobCrafter 14.12.2010 12:08

у нет стрима ж разные есть)

КорДум 14.12.2010 12:49

Цитата:

Я видел только 2 . Это SecurityError и IOError . Есть еще какие- то ?
У лоадерообразных две, а у нетСтримов всяких больше, угу.

gloomyBrain, заинтересовал ваш код для 10.1+ плеера. Он хорош, но не могу представить ситуацию, когда он пригодится. Если для просто заглушки на все и вся - это же не хорошо, а как потом отлавливать, где и чего стопорится? Но наверняка можно использовать вместе с обычными, добавленными ручками, отловами ошибок - тех же SecurityError и IOError. А какие еще могут быть ошибки у флешки?

boleg 14.12.2010 20:09

Цитата:

Он хорош, но не могу представить ситуацию, когда он пригодится.
Большой проект, ошибки могут вылезти в недоступных моему глазу местах. Вышеописанным способом они отлавливаются, и отправляется баг-репорт на сервер. Пользователю показывается стандартное сообщение об ошибке.

КорДум 14.12.2010 20:16

boleg, если у event в таком случае есть паблик константы (или что там), чтобы идентифицировать ошибку, то да. Проверить не могу - FD отказывается выдавать класс UncaughtErrorEvent вообще.

gloomyBrain 14.12.2010 21:12

Цитата:

Он хорош
Он взят из хелпа и он, на мой взгляд, бред. Потому как ловить "что-то откуда-то" довольно нелепо.
Но, несмотря на это, пригодиться может. Например, вот в такой ситуации.

КорДум 14.12.2010 21:45

Цитата:

Он взят из хелпа и он, на мой взгляд, бред.
Насчет бреда согласен, собственно, я почти так и написал выше. А вот насчет сокетного случая - угу, костыль костылем погоняет.

Psycho Tiger 14.12.2010 23:41

Господа!
У меня флексхиро и данная конструкция не компилируется, сетая на UnhandlenErrorEvent - мол не найдено. Хотел спросить давно, руки не доходили.

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

gloomyBrain 14.12.2010 23:57

4.1 полет нормальный. Импорт-то прописал? =)

expl 15.12.2010 00:02

Цитата:

Если для просто заглушки на все и вся - это же не хорошо, а как потом отлавливать, где и чего стопорится?
Зато злые хакеры не смогут ничего узнать по стеку вызвовов в вывалевшемся окне исключения :)

Psycho Tiger 15.12.2010 00:06

Звучит как оскорбление, ага )
У меня даже FD по F4 показывает внутренности.

Цитата:

Зато злые хакеры не смогут ничего узнать по стеку вызвовов в вывалевшемся окне исключения
Да, 5 баллов. А то я порой смотрю в стек вызовов, на замыкания, следование конвенции, имена классов. И сразу же в голове всплывает архитектура приложения. Да-да, всплывает.

boleg 15.12.2010 15:35

Цитата:

Господа!
У меня флексхиро и данная конструкция не компилируется, сетая на UnhandlenErrorEvent - мол не найдено. Хотел спросить давно, руки не доходили.
В настройках проекта нужно указать минимальную версию плеера 10.1


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

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