有沒有C#等價於Java的Exception.printStackTrace()
的方法,還是我必須自己編寫一些東西,通過InnerExceptions工作?C#相當於Java的Exception.printStackTrace()?
59
A
回答
87
試試這個:
Console.WriteLine(ex.ToString());
從http://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx:
的ToString的默認實現獲取拋出當前異常的消息,在調用toString的結果類的名稱內部異常,以及調用Environment.StackTrace的結果。如果這些成員中的任何一個爲空,則其值不包含在返回的字符串中。
注意,在上面的代碼有一個重載需要System.Object
和直接調用ToString
調用ToString
不是必需的。
0
是否沒有C#Logging API可以將Exception作爲參數並處理所有內容,比如Java的Log4J呢?
即,使用Log4NET。
2
http://msdn.microsoft.com/en-us/library/system.exception.stacktrace.aspx
Console.WriteLine(myException.StackTrace);
+0
這不包括消息或內部異常詳細信息。 – 2008-12-02 13:51:17
1
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace);
}
9
正如德魯所說,只是將異常轉換爲字符串。舉例來說,此程序:
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");
}
}
產生這樣的輸出:
System.Exception: Outer ---> System.Exception: Inner
at Test.ThrowException2()
at Test.ThrowException()
--- End of inner exception stack trace ---
at Test.ThrowException()
at Test.Main()
-1
也期待在log4net的...它Log4J的上的端口.NET。
69
我想補充:如果你要打印一個例外之外堆棧,你可以使用:
Console.WriteLine(System.Environment.StackTrace);
相關問題
- 1. C#相當於Java的Thread.setDaemon?
- 2. 相當於Java的C#Action.BeginInvoke
- 3. 相當於Java的C#Rfc2898DerivedBytes
- 4. 相當於Java的Optional.orElse C#
- 5. C++相當於Java的System.arraycopy
- 6. java的cin(C++)相當於
- 7. 相當於C++的Java ByteBuffer?
- 8. C#相當於Java的mkdirs()
- 9. Java相當於C的「ispunct()」
- 10. C#相當於java的Graphics2D
- 11. Java相當於C#代碼
- 12. 相當於Java C#Array.Copy
- 13. 相當於java的C/C++ Integer.toHexString
- 14. C或Objective-C相當於Java的Integer.toOctalString()?
- 15. C#相當於Java的同步(abc.class)的
- 16. 相當於C#的DateTime.Now在Java中嗎?
- 17. C#出的IntPtr相當於在Java中
- 18. 相當於Java中C語言的__FUNCTION__
- 19. Objective C相當於Java的ArrayList
- 20. Java相當於C#的類型?
- 21. 什麼是C#相當於Java的getAndSet
- 22. Java中的C stroull相當於
- 23. C#相當於Java PushbackReader的未讀()
- 24. 相當於Java XDoclet的C++工具
- 25. 相當於C++中的Java接口?
- 26. C#相當於Java的FloatBuffer/ShortBuffer?
- 27. Java的setFilterBitmap相當於在Objective-C
- 28. C#中的Java noneMatch()相當於Linq
- 29. 相當於C#
- 30. C#相當於OBJ-C的
很好的問題:) – Epaga 2008-12-02 13:48:34
這是一個很好的問題,但它不是一個很好的答案 – 2008-12-02 13:55:17
我認爲它指出了爲什麼微軟可能沒有在C#中提供Java這樣的功能(是在更簡單的時代開發的舊語言)。也就是說,推薦一種更好的方法。 – JeeBee 2008-12-02 13:58:02