gpt4 book ai didi

c# - WPF Dispatcher Thread- 使用 lambda 表达式和 throw 将异常分派(dispatch)给 UI 线程

转载 作者:行者123 更新时间:2023-11-30 17:14:55 25 4
gpt4 key购买 nike

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 但我得到:

A throw statement with no arguments is not allowed outside of a catch clause.

如何在不截断堆栈跟踪的情况下使用 lambda 表达式抛出异常?

最佳答案

为什么不创建一个新的异常,将旧的异常作为 InnerException?

e => throw new WhateverException("your message", ex);

这保留了原始堆栈跟踪。

关于c# - WPF Dispatcher Thread- 使用 lambda 表达式和 throw 将异常分派(dispatch)给 UI 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8338305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com