簡體   English   中英

WPF Dispatcher Thread-使用lambda表達式並拋出將異常分派給UI線程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM