gpt4 book ai didi

c# - 实现并行异常以获得错误树?

转载 作者:搜寻专家 更新时间:2023-10-31 00:02:58 24 4
gpt4 key购买 nike

考虑以下代码:

// this method should add numbers, the requirements are:
// x >= 3 and y <= 5
int add(int x, int y)
{
if(x < 3) throw new ...;
if(y > 5) throw new ...;
}

这绝对是传统方法,但如果您为 x 和 y 传递了无效值,您只会得到 x 的异常。为什么是 x 而不是 y?只是因为您首先检查 x,然后才检查 y。为什么?这基本上是主要问题。

在上面的代码中,在 y 之前检查 x 或在 x 之前检查 y 是完全没有意义的。仅仅因为在单个线程中执行流程的想法,一些语句先于其他语句执行。

我正在考虑实现一种机制来处理并行异常。这个想法是,如果有 2 个语句可以同时执行(执行顺序无关紧要)并且它们都抛出异常,我希望能够处理所有这些异常。伪代码如下:

// this method should add numbers, the requirements are:
// x >= 3 and y <= 5
int add(int x, int y)
{
parallel
{
if(x < 3) throw new ...;
if(y > 5) throw new ...;
} // point A

return x + y;
}

在 A 点的某处抛出累积异常。您以前见过这种方法,或者甚至可能实现过类似的方法吗?这里的主要目标是,如果你有一个复杂的操作,它使用了一些其他操作,并且“最上面的”操作由于某种原因失败了,你就能够得到错误的完整诊断:不是一个错误(或一些嵌套的错误),而是错误的

问题是:

  1. 你怎么看?
  2. 你以前见过吗?
  3. 您是否尝试过实现类似的东西?

最佳答案

也许使用 AggregateException

关于c# - 实现并行异常以获得错误树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7017010/

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