¿Existe un método equivalente a C# para Java Exception.printStackTrace()
o tengo que escribir algo yo mismo, trabajando en las InnerExceptions?C# equivalente a Exception.printStackTrace() de Java?
Respuesta
Prueba esto:
Console.WriteLine(ex.ToString());
De http://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx:
La implementación predeterminada de ToString obtiene el nombre de la clase que lanzó la excepción actual, el mensaje, el resultado de llamar ToString en la excepción interna, y el resultado de llamar a Environment.StackTrace. Si alguno de estos miembros es nulo, su valor no se incluye en la cadena devuelta.
Tenga en cuenta que en el código anterior no es necesaria la llamada a ToString
ya que hay una sobrecarga que lleva System.Object
y llama ToString
directamente.
¿No hay una API de registro de C# que pueda tomar una excepción como argumento y manejar todo por usted, como lo hace Log4J de Java?
Es decir, use Log4NET.
http://msdn.microsoft.com/en-us/library/system.exception.stacktrace.aspx
Console.WriteLine (myException.StackTrace);
Eso no incluirá el mensaje o los detalles de la excepción interna. –
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace);
}
Eso no incluirá el mensaje o los detalles de la excepción interna. –
Gotcha. Gracias por la info. –
Como dice Drew, al convertir la excepción una cadena hace esto. Por ejemplo, este programa:
using System;
class Test
{
static void Main()
{
try
{
ThrowException();
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
static void ThrowException()
{
try
{
ThrowException2();
}
catch (Exception e)
{
throw new Exception("Outer", e);
}
}
static void ThrowException2()
{
throw new Exception("Inner");
}
}
produce esta salida:
System.Exception: Outer ---> System.Exception: Inner
at Test.ThrowException2()
at Test.ThrowException()
--- End of inner exception stack trace ---
at Test.ThrowException()
at Test.Main()
También se fijan en Log4net ... es un puerto de Log4J a .NET.
me gustaría añadir: Si desea imprimir la pila fuera de una excepción, puede utilizar:
Console.WriteLine(System.Environment.StackTrace);
Maravilloso. Esto ayuda mucho. Muchas gracias Ryan – siddhusingh
- 1. C# Equivalente a Java IdentityHashMap
- 2. C++ equivalente a System.arraycopy de Java
- 3. C# equivalente a Thread.setDaemon de Java?
- 4. C# equivalente a los mkdirs de Java()
- 5. C++ Equivalente a BlockingQueue de Java
- 6. equivalente Java a C# 's TimeSpan
- 7. Equivalente a C# ObservableCollection en Java
- 8. ¿Equivalente a las interfaces Java en C++?
- 9. ¿Hay un Java equivalente a MISRA C?
- 10. Objetivo C equivalente a Java ArrayList
- 11. Anotación Java equivalente C#
- 12. C++ equivalente de Java ByteBuffer?
- 13. Java equivalente de cin (C++)
- 14. Java equivalente a app.config?
- 15. ¿Equivalente a #define en Java?
- 16. java equivalente a printf ("% *. * F")
- 17. C# Uri.EscapeDatastring() equivalente para Java
- 18. Java Map equivalente en C#
- 19. C# DateTime.Ticks equivalente en Java
- 20. Java System.currentTimeMillis() equivalente en C#
- 21. Java TreeMap equivalente en C#?
- 22. Equivalente a Double.doubleToLongBits en C#?
- 23. Java equivalente a .NET System.InvalidOperationException
- 24. ¿Cuál es el C# equivalente a la instancia de Java()?
- 25. C# equivalente a esperar y notificar de Java?
- 26. ¿Hay un C# equivalente a CountDownLatch de Java?
- 27. Equivalente de TreeSet en Java a C# .net
- 28. Función equivalente a "_getch()" de C en Java?
- 29. ¿Tiene Java un equivalente a Environment.GetCommandLineArgs() de C#?
- 30. Equivalente de IllegalArgumentException de Java en C++
buena pregunta :) – Epaga
es una buena pregunta, pero no es una buena respuesta –
Creo que señala por qué Microsoft podría no haber proporcionado tal funcionalidad en C# que Java lo hizo (siendo el lenguaje más antiguo desarrollado en tiempos más simples). Es decir, hay una mejor manera que se recomienda. – JeeBee