正確重拋例外
重拋例外有很多種方式, 包含 throw, throw ex, 使用 inner exception 以及 System.Runtime.ExceptionServices.ExceptionDispatchInfo, 或是不要重拋例外.
先總結選擇如下順序:
- 最好不要重拋例外
- 重拋優先選
System.Runtime.ExceptionServices.ExceptionDispatchInfo - 沒有框架支援則用 Inner Exception
throw應該沒什麼情境需要用到了throw ex是具破壞性的作法, 除非是要刻意破壞堆疊追蹤
這篇會整理這幾種方法的使用與優缺, 並且另外提到 throw 和 throw ex 兩種方法對於堆疊追蹤的負面影響.