elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el ttwitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Onstartup en DLL Catch de errores
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Onstartup en DLL Catch de errores  (Leído 631 veces)
rigorvzla

Desconectado Desconectado

Mensajes: 208


Ver Perfil
Onstartup en DLL Catch de errores
« en: 17 Abril 2022, 18:37 pm »

Hola amigos, hoy les traigo un codigo q me dieron para capturar errores en la aplicacion de manera global.

este codigo se coloca en el archivo App.xaml.cs
dentro de la clase App.

Código:

  string Reporte;
protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
            DispatcherUnhandledException += App_DispatcherUnhandledException;
        }


        private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
        {
            Reporte = $@"Excepción: { e.Exception.InnerException.Message.ToString()}

        Source: { e.Exception.InnerException.Source.ToString()}

        StackTrace: { e.Exception.InnerException.StackTrace.ToString()}

        Mensaje: { e.Exception.Message.ToString()}
        ";
            File.WriteAllText("log.txt", Reporte);
            //Mensaje(e.Exception.InnerException.ToString() + Environment.NewLine + e.Exception.ToString());
        }


        private void MyHandler(object sender, UnhandledExceptionEventArgs args)
        {
            MessageBox.Show(Reporte, "Error Capturado", MessageBoxButton.OK, MessageBoxImage.Error);
        }

hasta aqui todo va buenisimo, ya que con unas modificaciones mias, es posible manipular ese error de cualquier manera imaginable.

Error producido:

Citar
System.InvalidOperationException
  HResult=0x80131509
  Mensaje = No se puede crear más de una instancia System.Windows.Application en el mismo AppDomain.
  Origen = PresentationFramework
  Seguimiento de la pila:
   en System.Windows.Application..ctor()
   en Telemetria_RV.Error_APP..ctor()
   en Ventana_Activacion.MainWindow..ctor() en C:\Users\MiniRigor\source\repos\RigorLand\Ventana_Activacion\MainWindow.xaml.cs: línea 9

la cosa es que se complica , y no se como hacer q funcione, creandolo en una DLL, eh creado la DLL , con una clase que hereda Application.

pero al generar la dll y tratar de colocar el codigo en el archivo App.xaml.cs me genera diversos errores, y no encuentro como hacer el codigo desde un archivo externo osea una dll.

Espero puedan ayudarme, de antemano gracias.


« Última modificación: 19 Abril 2022, 00:52 am por rigorvzla » En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.150


Ver Perfil
Re: Onstartup en DLL Catch de errores
« Respuesta #1 en: 22 Abril 2022, 08:35 am »

No entiendo para que quieres 'manipular' el error de una aplicación.
Básicamente cuantas más aplicaciones haya de por medio entre el error y la salida al usuario, más críptico va a ser el mensaje...

De hecho hay (lenguajes con) mensajes de error aborrecibles porque algunos lenguajes en vez de crear su propio compilador recurren a compiladores estándar (Flex, Bison etc...)... pasándole los datos precisos, estos generan un error en base a la etapa y token procesado del código recibido que está bajo examen, pero como es genérico, no pueden responder al detalle como lo haría el lenguaje que nativamente implementara el compilador para el mismo y a la vuelta el programa tampoco puede aportar más detalles, ya que ha delegado en otro para el proceso, no puede ahora enfangarse en tratar de ser más explícito, a los sumo moverse en una especifidad todavía genérica, que tampoco va a ayudar más al usuario...

Pero bueno... es cosa de cada uno interponer etapas intermedias, que compliquen entender el problema real subyacente.


Tal como creo entenderte, tu debes poner el código en el fichero que te han comentado y en tu dll, lo que tendrás que hacer es enviar datos a alguna función para tu hacer el tratamiento del texto y por tanto luego usar la impresora con el formato que pretendas, para informar del error, es decir que donde pones
" File.WriteAllText("log.txt", Reporte);"
es donde deberías invocar a tu dll, pasando el argumento 'e', para desguazarlo e imprimirlo decorado como tengas pensado...

Otra interpretación que se desprende de tu mensaje (de lo que pides), es que la dll, no es realizada para tratar y presentar el error, si no el origen, el código donde se deberá interceptar los errores.... pero entonces me pierdo, porque aseguras que "hasta aqui todo va buenisimo", con lo que interpreto que has probado el código y que te funciona correctamente.

No queda claro como interpretar esto:
Citar
pero al generar la dll y tratar de colocar el codigo en el archivo App.xaml.cs me genera diversos errores, y no encuentro como hacer el codigo desde un archivo externo osea una dll.
...pués no queda claro si es el caso primero que interpreto o el segundo.
Si es el primer caso, es más que probable que la dll deba de ser de tipo servidor (es decir debe existir una sola instancia y previamente instalada en el equipo).


« Última modificación: 22 Abril 2022, 08:37 am por Serapis » En línea

rigorvzla

Desconectado Desconectado

Mensajes: 208


Ver Perfil
Re: Onstartup en DLL Catch de errores
« Respuesta #2 en: 22 Abril 2022, 21:27 pm »

Muy bien voy a tratar de explicarme mejor, para despejar las dudas en mi problema.
el codigo es funcional , siempre y lo use en el archivo App.xaml.cs directamente, pero si yo tomo ese codigo y lo creo en una libreria (dll) , al querer implementarlo en el mismo archivo , me genera el error .

Citar
  Mensaje = No se puede crear más de una instancia System.Windows.Application en el mismo AppDomain.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
try catch, bucle
Java
leogtz 5 10,480 Último mensaje 13 Febrero 2010, 06:45 am
por 43H4FH44H45H4CH49H56H45H
try catch en c++ (dev c++)
Programación C/C++
JulCesa 3 4,247 Último mensaje 27 Noviembre 2011, 19:21 pm
por naderST
Pregunta con Try y catch?
Java
Slider324 3 1,837 Último mensaje 23 Diciembre 2012, 02:07 am
por Slider324
Uso de try-catch en Java
Java
++c 4 3,126 Último mensaje 10 Octubre 2014, 16:05 pm
por Pablo Videla
Try Catch Stack Overflow
Noticias
wolfbcn 0 672 Último mensaje 6 Octubre 2017, 02:15 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines