Comunidad de diseño web y desarrollo en internet online

como intercepto cualquier error de mi aplicacion

Citar            
MensajeEscrito el 15 Sep 2010 07:03 am
hola

necesito interceptar el texto de cualquier error en tiempo de ejecucion de mi aplicacion para que la aplicacion me mande un mail con el error pero no encuentro como hacerlo. Intente usar Try Catch en las lineas que ejecutan mi aplicacion, pero no captura todos los errores, si los errores estan en sub objetos de mi aplicacion. Puede ser que se pueda extender la clase event o algo asi?

esto seguro no lo sabe nadie o no se puede pero bueno no pierdo nada con preguntar

gracias de antemano saludos.

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Sep 2010 02:14 pm
No hay un catchAll que puedas usar, igual a menos que rompa la ejecución del programa, solo lo verán quienes usan el Flash Player Debugger

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Sep 2010 02:53 pm
Al final encontre la manera de hacerlo, lo malo es que solo funciona en flash player 10.1 en adelante
Con el siguiente codigo vas a ver un error 2 veces en el trace, uno lo genera el flash player y otro lo generamos nosotros por que obtenemos el mismo texto del error, ahi va:

Código ActionScript :

loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, captureError ); 

function captureError(e:UncaughtErrorEvent):void{ 
   var txtResp = "CaptureError"; 
   if (e.error is Error){ 
      var error:Error = e.error as Error; 
      txtResp +=   "\n\nError ID: " + error.errorID +  
                        "\n\nError Name: " + error.name +  
                        "\n\nError Message:\n" + error.message +
         "\n\nError StackTrace:\n" + error.getStackTrace()
   }else{ 
      var errorEvent:ErrorEvent = e.error as ErrorEvent; 
      txtResp += "\n" + errorEvent.errorID 
   }
   trace(txtResp)
} 

//Probamos con esto que da error:
this["soy un pete programando"].hola = "holaa"

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Sep 2010 02:56 pm
¿Al loaderInfo? ¿Y te funciona con errores desde componentes anidados en runtime? ... Si estás hablando de Flash (no Flex), ¿funciona desde timelines anidados a dos niveles por ejemplo?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Sep 2010 03:01 pm
OJO! me falto algo, usen try catch en el listener para no producir un error en versiones menores a flash 10.1

asi:

Código ActionScript :

try{
      loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, captureError ); 
}catch(versionViejaFlash){
      trace("version vieja de flash")
}

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Sep 2010 03:04 pm
solisarg, no se a que te referis con componentes anidados en runtime, proba copia ese mismo codigo que postie y pegalo en un frame de un documento de flash cs5 (no se si cs4 se lo banca) y hace las pruebas y confirma en un coment si te funciono eso que decis, a mi me funcionaron varias pruebas

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Sep 2010 04:22 pm
Bueno el codigo que postie antes igual crashea el flash player en versiones anteriores a la 10.1, este si que funciona 10 puntos y es mas corto:

Código ActionScript :

import flash.events.ErrorEvent;

if(loaderInfo.hasOwnProperty("uncaughtErrorEvents")){
   IEventDispatcher(loaderInfo["uncaughtErrorEvents"]) .addEventListener("uncaughtError", uncaughtErrorHandler);
}

function uncaughtErrorHandler(e:Object):void {
   trace(e.error.getStackTrace())
}
this["soy un pete"].hola = "no"

Por fermmm

Claber

122 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.