Axapta try-catch块中的句柄异常
我有一个切换案例场景,在这个场景中,我事先知道用户可能无法使用正确的类别设置规则。只要我能弹出一个对话框,说明如何运行程序,这对我来说完全没问题。然而,我遗漏了一些东西,这是我的问题 当我按照上面的方法测试一个场景时,光标穿过默认情况,并弹出错误。我怎样才能让它进入我的接球区Axapta try-catch块中的句柄异常,axapta,dynamics-ax-2012,x++,dynamics-ax-2012-r2,dynamics-ax-2012-r3,Axapta,Dynamics Ax 2012,X++,Dynamics Ax 2012 R2,Dynamics Ax 2012 R3,我有一个切换案例场景,在这个场景中,我事先知道用户可能无法使用正确的类别设置规则。只要我能弹出一个对话框,说明如何运行程序,这对我来说完全没问题。然而,我遗漏了一些东西,这是我的问题 当我按照上面的方法测试一个场景时,光标穿过默认情况,并弹出错误。我怎样才能让它进入我的接球区 try { switch (userInput) { case 1: case 2: case 3: if (condition)
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;
}
原因是数据库事务中通常不会捕获异常。我在中详细解释了它,其中它被标记为已验证的答案。不确定axapta,但正常的C#将是
抛出新异常(“消息”)代码>然后>代码> catch(异常e)>代码。代码不是C++,甚至在托管C++中它也不会编译。提供一个真实的工作示例。您的else
将永远不会启动。请提供一个有意义的例子。我们无法猜测您的环境是什么——您必须告诉我们。我的问题更像是-理论上如何处理默认情况(在情况4之后)?-我唯一关心的是,当遇到错误时,它会停止,而不是转到catch块,上面的所有内容都正常。2:将异常写入InfologYes的错误方法,在switch案例中有userInput,正如前面提到的,代码进入默认案例并运行。谢谢谢谢,在我找到更好的解决方案之前,这就是我将使用的解决方法。享受吧!当然,如果这解决了您的问题,请标记为答案。