在 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 中更详细地解释了它,它被标记为经过验证的答案。
我有一个切换案例场景,我事先知道用户很可能没有为正确的类别设置规则。只要我能弹出一个对话框,显示如何操作才能 运行 程序,这对我来说完全没问题。但是我遗漏了一些东西,这是我的问题。
当我按照上面的方式测试场景时,光标会经过默认情况,并弹出错误。我怎样才能让它进入我的 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 中更详细地解释了它,它被标记为经过验证的答案。