gpt4 book ai didi

c# - 在这种情况下,嵌套的 try catch 是否合理?

转载 作者:行者123 更新时间:2023-11-30 15:44:50 26 4
gpt4 key购买 nike

如果您在用户不知道数据类型的情况下进行暴力搜索,那么我们可以这样做吗?

        if (search.Length > 0 && comboBox1.Text.Equals("Data Type Not Known"))
{
try
{
ParentGraph p = new ParentGraph(search);
}
catch (NoDataFoundException ndfe)
{
//it fails so try different data type
try
{
CompoundGraph c = new CompoundGraph(search);
}
catch(NoDataFoundException ndfe)
{
//failed so try final type
try
{
BatchGraph b = new BatchGraph(search);
}
catch(NoDataFoundException ndfe)
{
MessageBox.Show("Data could not be linked to a particular search")
}
}
}
}

最佳答案

这会起作用,但它在两个方面很丑陋:

  • 感觉代码重复是个坏主意……你能不能给我一个List<T>某种,例如List<Func<string, object>>并依次尝试每个工厂代表?
  • 如果没有找到数据是合理的,那应该不是异常(exception)。考虑写一个工厂方法而不是构造函数,如果没有找到数据则返回 null ... 或者有一个 TryGetData带有输出参数和 bool返回值(或者可能只是一个元组返回值)。处理带有异常的流程对我来说不合适。

关于c# - 在这种情况下,嵌套的 try catch 是否合理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5816457/

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