[英]WPF Dispatcher Thread- Using lambda expression and throw to dispatch exception to UI thread
try
{
string s = null;
s.PadLeft(10);
}
catch (Exception ex)
{
// send exception to UI Thread so it can be handled by our global exception
// handler
Application.Current.Dispatcher.Invoke(DispatcherPriority.Send,
new Action<Exception>(e => { throw ex; }), ex);
}
正如你所看到的,'throw ex'會截斷堆棧跟蹤,我想使用throw
而不是throw ex
但是我得到:
不允許在catch子句之外使用不帶參數的throw語句。
如何在不截斷stacktrace的情況下使用lambda表達式拋出異常?
為什么不用新的異常作為InnerException創建一個新的Exception?
e => throw new WhateverException("your message", ex);
這保留了原始的堆棧跟蹤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.