可能重複:
What is the proper way to re-throw an exception in C#?爲什麼要「扔掉」;隱藏原來的堆棧跟蹤
我想知道爲什麼「扔恩」的使用隱藏了原來的堆棧跟蹤?設計c#編譯器時背後的基本哲學是什麼?
可能重複:
What is the proper way to re-throw an exception in C#?爲什麼要「扔掉」;隱藏原來的堆棧跟蹤
我想知道爲什麼「扔恩」的使用隱藏了原來的堆棧跟蹤?設計c#編譯器時背後的基本哲學是什麼?
當你捕捉到一個異常時,它的「出生地」就在其他地方,並且這個異常將堆棧追蹤傳送到它被拋出的地方。將其視爲throw
初始化Exception
類的實例的堆棧跟蹤。因此throw ex;
用當前堆棧初始化ex
的堆棧跟蹤。
您是否意識到可以使用'throw;'如果您想重新拋出原始異常以及原始堆棧跟蹤的事實? – Adam 2012-08-13 09:25:42
@codesparkle是的,我知道「扔」用法。但我只想了解原因? – mkus 2012-08-13 09:26:18
在這種情況下,你真的不知道你在問什麼。 「爲什麼有一個新的堆棧跟蹤拋出的命令」?因爲設計師認爲這樣的事情足以證明構建它的成本<===但這是每個這樣的問題的答案,使它不是特別有啓發性。你真的想知道什麼? – AakashM 2012-08-13 09:30:13