gpt4 book ai didi

java - 此场景中的异常处理

转载 作者:行者123 更新时间:2023-12-01 14:17:42 25 4
gpt4 key购买 nike

第一次尝试Java,请多多指教。我在 Web Controller 中有以下代码,其中根据随附的 Switch-Case 语句调用服务。
我面临的问题是,如果服务调用抛出异常,该异常将显示在 JSP 页面上。基本上代码永远不会到达以下行:

if(!statusFlag)
{
model.addAttribute("statusFlag", statusFlag);
return "myJspPage"
}

即使 WebService 调用中抛出异常,我如何确保执行到上面几行:

statusFlag = myWebService.getMeStatus();

我应该将整个 Switch 语句包含在 try-catch block 中吗?

片段:

@Controller
public String mySpringController() throws Exception
{
//rest of the controller code
switch ( condition )
{
case MAY :
statusFlag = myWebService.getMeStatus();

if(!statusFlag)
{
model.addAttribute("statusFlag", statusFlag);

return "myJspPage"
}
break;

case JUNE :
statusFlag = myWebService.getMeStatus();

if(!statusFlag)
{
model.addAttribute("statusFlag", statusFlag);

return "myJspPage"
}
break;

case JULY :
statusFlag = myWebService.getMeStatus();

if(!statusFlag)
{
model.addAttribute("statusFlag", statusFlag);

return "myJspPage"
}
break;
default:

//Do something by default.

}

return "myJspPage";

}

最佳答案

如果该行抛出异常,则意味着它永远不会返回,因此 statusFlag 仍为其原始值,并且该方法的执行已停止。如果您想捕获异常并对其执行某些操作,则需要将其放在 try - catch 中。

我看到你正在使用Spring。在 Spring Controller 中,您还可以拥有自己的特殊方法,这些方法在发生异常时被调用。使用@ExceptionHandler注释。

关于java - 此场景中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17960437/

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