我有一个切换案例场景,我事先知道用户可能没有使用正确的类别设置规则的机会很高。一旦我可以弹出一个对话框,显示说明如何运行该程序,它对我来说完全没问题。但是我错过了一些东西,这是我的问题。
当我按照上面的方式测试场景时,光标会经过默认情况,然后弹出错误。我如何让它进入我的捕获块?
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");
}
非常感谢您的帮助!
提前谢谢你,祝你有个美好的夜晚。
小时。
答案 0 :(得分:2)
原因是异常通常不会在数据库事务中捕获。我在the thread about the same question in the Dynamics community forum中更详细地解释了它,并将其标记为经过验证的答案。
答案 1 :(得分:0)
我不知道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;
}