Flashhilfe.de - Flash Community

ioError trotz try and catch [Flash 9]

 


AntwortenRegistrieren Seite1  

jens2008#1
Benutzerbild von jens2008
Beiträge: 3
Registriert: Oct 2008

31.10.2008, 14:31

Hallo zusammen.
Ich wollte auf das andere Thema antworten, aber es geht nicht,
da die Frage wohl schon beantwortet ist - aber nicht für mich.

Ich begomme trotz try and catch immernoch einen ioError, wenn
die xml nicht geladen werden konnte. Ich will den Fehler aber anfangen,
aber es scheint nicht zu funzen.

Vielleicht hat jemand einen Tipp für mich.

hier der Code:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/*
*(c) je@designverign.de
*LoadXML Klasse
*/


//annonymes package
package {

   import flash.errors.*;
   import flash.events.Event;
   //import flash.net.URLLoader;
   //import flash.net.URLRequest;
   import flash.net.*;

   public class LoadXML {

      private var xmlFile:String;         //path of xml file
      private var xmlObj:XML;            //xml object
      private var ImagesArr:Array;      //array of images

      //Konstruktor
      public function LoadXML(xmlPath:String):void {
         if (xmlPath != "") {
            this.xmlFile = xmlPath.toString();
            init();
         } else {
            trace("ERROR: xmlPath is not a String or is Empty!");
         }
      }
      
      private function init(e:Event = null):void {
         var loader:URLLoader = new URLLoader();

         loader.addEventListener(Event.COMPLETE, handleComplete);
         loader.dataFormat = URLLoaderDataFormat.TEXT;
         try {
            loader.load( new URLRequest( this.xmlFile ) );
         } catch (error:IOError) {
            trace("XML Konnte nicht geladen werden!");
         } catch (error:ArgumentError) {
                trace("An ArgumentError has occurred.");
            } catch (error:SecurityError) {
                trace("A SecurityError has occurred.");
            }
      }
      
      private function handleComplete(event:Event):void {
         xmlObj = new XML(event.target.data);
         //parseXML(xmlObj);
         trace( xmlObj.toXMLString() );
      }
      
      private function cantLoadXML(event:Error):void {
         trace("Konnte XML-Datei nicht laden!");
      }
   }
}


Bin für jeden Tipp dankbar.

Gruß Jens
Werbung
Beiträge: 0
Registriert: Feb 2016


badskill#2
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

31.10.2008, 15:18

Hi,
ActionScript:
1loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
jens2008#3
Benutzerbild von jens2008
Beiträge: 3
Registriert: Oct 2008

Themenautor/in

31.10.2008, 15:25

Hallo badskill.

Danke für deine Antwort.
Muss ich es mit einem extra Event machen oder kann man es auch mit try and catch realiseren?  Dein Tipp hat übrigends geklappt, vielen Dank :)
badskill#4
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

31.10.2008, 15:32

Ein extra Event.
try-catch verarbeitet synchrone Fehler. Der Ladevorgang ist aber asynchron und wird somit von try-catch nicht erfasst.
Glaub zumindest, dass das der Grund ist.
Werbung
Beiträge: 0
Registriert: Feb 2016


omega psi#5
Benutzerbild von omega psi
Beiträge: 791
Registriert: Apr 2004

31.10.2008, 17:40

Wenn es ein Error ist - ist das nicht der Grund. Ist es ein ein ErrorEvent dann sollte es das tun.
Architectures - Refactoring - Prototyping - Coding - Training
badskill#6
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

31.10.2008, 17:52

Ich bin mir nicht sicher, ob ich die Antwort richtig verstehe.
Hat das nichts mit synchron/asynchron zu tun? Ist meine Anwort falsch?
omega psi#7
Benutzerbild von omega psi
Beiträge: 791
Registriert: Apr 2004

31.10.2008, 18:34

Nein, deine Antwort ist richtig - ich würde das gleiche raten. Der Threadersteller spricht aber von IOError... also entweder hat er was übersehen - dann ist unser Ansatz richtig oder er hat recht und wir legen ihm das falsche nahe um das Problem zu fixen.

Sorry, wenn das zu knapp formuliert war.
Architectures - Refactoring - Prototyping - Coding - Training
jens2008#8
Benutzerbild von jens2008
Beiträge: 3
Registriert: Oct 2008

Themenautor/in

03.11.2008, 09:55

Ne, stimmt schon. Es war ein IOError. Nur ich wusste nicht, wie man den abfängt.
Die Hilfe war auch nicht sehr Hilfreich, aber eure Antworten stattdessen schon, danke nochmal.
Thema gann als beantwortet markiert werden.

Danke und Gruß
Jens

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de