- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有多个带有 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/
我有多个带有 try/catch block 的嵌套方法。如果有任何异常,我想记录第一个异常并让控制流通过嵌套方法冒泡。我试图通过引发一个名为 PriorException 的自定义异常来做到这一点
我是一名优秀的程序员,十分优秀!