Форум 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=210714)

tooth212 25.04.2015 20:22

Ловля ошибки при загрузке неправильного текстового файла
 
Добрый день. Возникла проблема, при ловле ошибки при загрузке некорректного текстового файла.
Загрузка и поиск ошибки делаю так:
Код AS3:

try
{
var fl_TextLoader:URLLoader = new URLLoader();
fl_TextLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
var fl_TextURLRequest:URLRequest = new URLRequest("http://www.mysite.ru/test.txt"+ "?r="+String(Math.random()*1000));
 
 
    fl_TextLoader.load(fl_TextURLRequest);
}
catch(e:Error)
{
  trace("bug");
}

Вылетает ошибка:
Код:

Error: Error #2101: Строка, переданная в URLVariables.decode(), должна быть строкой запроса закодированного URL-адреса и содержать пары имя/значение.
        at Error$/throwError()
        at flash.net::URLVariables/decode()
        at flash.net::URLVariables()
        at flash.net::URLLoader/onComplete()

Как можно эту ошибку ловить?

undefined 26.04.2015 13:19

похоже, URLLoader не кидает никакой эксепшен либо эвент при кривых данных в текстовике.Выход - грузить данные как TEXT и парсить самостоятельно после загрузки. Например:
Код AS3:

import flash.net.*;
import flash.events.*;
try {
var fl_TextLoader:URLLoader = new URLLoader();
fl_TextLoader.dataFormat = URLLoaderDataFormat.TEXT;
var fl_TextURLRequest:URLRequest = new URLRequest("test.txt");
        fl_TextLoader.addEventListener(Event.COMPLETE,hComplete,false,0,true);
    fl_TextLoader.load(fl_TextURLRequest);
}
catch(e:Error)
{
  trace("bug");
}
function hComplete(e:Event) {
        var vars:URLVariables=new URLVariables();
        try {
        vars.decode(((e.target) as URLLoader).data as String);
        } catch (e:Error) {
                trace("invalid format"); //ашыпка
        }
        //все значения сидят в vars
}


dimarik 26.04.2015 21:27

Цитата:

Сообщение от undefined (Сообщение 1181691)
похоже, URLLoader не кидает никакой эксепшен либо эвент при кривых данных в текстовике.

Ни разу не видел, чтобы URLLoader кидал заранее эксепшн по данным из текстовика, не загрузив данные из текстовика.

undefined 26.04.2015 22:50

Тем не менее URLLoader спокойно может кинуть эксепшен. Пусть и по другому поводу

tooth212 03.05.2015 12:25

Большое спасибо.


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

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