Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database DataAccessException响应状态_Database_Spring_Http_Spring Mvc - Fatal编程技术网

Database DataAccessException响应状态

Database DataAccessException响应状态,database,spring,http,spring-mvc,Database,Spring,Http,Spring Mvc,如果Spring控制器调用的代码抛出SpringDataAccessException,并且控制器没有捕捉到它或者没有异常处理程序,Spring会向客户端返回适当的HTTP响应状态吗 也就是说,DataAccessExceptions是否有合适的@ResponseStatus注释?或者SpringMVC框架是否显式捕获并处理这些异常?或者框架对它们没有什么特别的作用,然后像对待任何其他RuntimeException,我猜这会导致HTTP状态为500(内部服务器错误)。如果Spring没有处理程

如果Spring控制器调用的代码抛出Spring
DataAccessException
,并且控制器没有捕捉到它或者没有异常处理程序,Spring会向客户端返回适当的HTTP响应状态吗

也就是说,
DataAccessException
s是否有合适的
@ResponseStatus
注释?或者SpringMVC框架是否显式捕获并处理这些异常?或者框架对它们没有什么特别的作用,然后像对待任何其他
RuntimeException
,我猜这会导致HTTP状态为500(内部服务器错误)。

如果Spring没有处理程序,它看起来(以及它所委托的后续方法)只是将异常委托给servlet容器。Spring默认具有使用
@ExceptionHandler
@ResponseStatus
注释的处理程序,以及外观良好的
DefaultHandlerExceptionResolver
。但是后者不处理
DataAccessException
s。因此,SpringMVC对
DataAccessException
s没有任何特殊功能

如果要将
DataAccessException
s映射到特定的HTTP响应状态代码,可以

看起来是这样的:

@Controller
public class YourController {

  @RequestMapping(value = "foo")
  public void foo() throws DataAccessException {
    ...
  }

  @ExceptionHandler(DataAccessException.class)
  @ResponseStatus(value=HttpStatus.INTERNAL_SERVER_ERROR)
  @ResponseBody
  public String handleException(DataAccessException ex) {
    return "error message";
  }
}
如果Spring没有处理程序,它看起来(以及它所委托给的后续方法)只是将异常委托给servlet容器。Spring默认具有使用
@ExceptionHandler
@ResponseStatus
注释的处理程序,以及外观良好的
DefaultHandlerExceptionResolver
。但是后者不处理
DataAccessException
s。因此,SpringMVC对
DataAccessException
s没有任何特殊功能

如果要将
DataAccessException
s映射到特定的HTTP响应状态代码,可以

看起来是这样的:

@Controller
public class YourController {

  @RequestMapping(value = "foo")
  public void foo() throws DataAccessException {
    ...
  }

  @ExceptionHandler(DataAccessException.class)
  @ResponseStatus(value=HttpStatus.INTERNAL_SERVER_ERROR)
  @ResponseBody
  public String handleException(DataAccessException ex) {
    return "error message";
  }
}