gpt4 book ai didi

c# - 用户代码未处理 PriorException

转载 作者:太空宇宙 更新时间:2023-11-03 14:29:02 24 4
gpt4 key购买 nike

我有多个带有 try/catch block 的嵌套方法。如果有任何异常,我想记录第一个异常并让控制流通过嵌套方法冒泡。我试图通过引发一个名为 PriorException 的自定义异常来做到这一点 ...

public class PriorException : ApplicationException
{
public PriorException() : base() { }
public PriorException(string message) : base(message) { }
}

... 并像这样编写 catch block :

try
{
(do stuff here)
}
catch (Exception ex)
{
MyLog.ExceptionError(ex);
if (ex is PriorException) { throw; } else { throw new PriorException(); }
}

(MyLog 忽略 PriorException,并且最外层的 catch block 不会重新抛出。)

但是,实际情况是,当遇到异常时,它会被捕获、记录并抛出 PriorException。然后控制权落到捕获并重新抛出 PriorException 的调用方法。但随后控制权移至 catch block 的 else 子句的左大括号,程序崩溃并显示“用户代码未处理 PriorException”。

我仍在一个或多个嵌套的 try/catch block 中,这些 block 应该捕获此异常,此外我还连接了 AppDomain.CurrentDomain.UnhandledException 以备不时之需。那么这是怎么回事?

最佳答案

听起来你在调试。运行时行为是否符合您的预期?

附带说明:我强烈建议您尝试重构您的代码,这样您就没有用于程序流的嵌套 try/catch block 。随着您的应用程序的进展,维护可能会变得非常棘手。

关于c# - 用户代码未处理 PriorException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3096400/

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