在 try catch 块中处理异常

handle exception in try catch block

我有一个切换案例场景,我事先知道用户很可能没有为正确的类别设置规则。只要我能弹出一个对话框,显示如何操作才能 运行 程序,这对我来说完全没问题。但是我遗漏了一些东西,这是我的问题。

当我按照上面的方式测试场景时,光标会经过默认情况,并弹出错误。我怎样才能让它进入我的 catch 块?

try  
{
    switch (userInput)
    {
        case 1:
        case 2:
        case 3:
            if (condition)
            {
               some code here
            }
            else
            {
                throw error();
            }
            break;
        case 4:
            postingType = smth;
            break;
        default:
            throw Global::error("here blows the error and does not move on to the catch");
    }
}
catch(exception::Error)
{
    info("test");
}

非常感谢您的帮助!

提前谢谢你,祝你有个愉快的夜晚。

H.

我不知道 axapta,但从逻辑上讲,您可以在不引发错误的情况下实现此行为(这可能是一个更好的主意,因为这实际上是验证错误而不是应用程序错误)。

怎么样:

  switch (userInput)
  {
    case 1:
    case 2:
    case 3:
        if (condition)

        {
           some code here
        }
        else
        {
            throw error();
        }
        break;
    case 4:
        postingType = smth;
        break;
    default:
        info("test");
        //handle invalid user input here.
        break;
  }

原因是数据库事务中通常不会捕获异常。我在 the thread about the same question in the Dynamics community forum 中更详细地解释了它,它被标记为经过验证的答案。