在我的REST服务应用程序中,我计划创建一个@ControllerAdvice类来捕获控制器抛出的异常,并根据错误类型返回ResponseEntity对象。
但是我已经有一个@RestController类来实现ErrorController接口来捕获所有异常。
这两件事有任何干涉吗?当ErrorController存在时,在哪些情况下将调用@ControllerAdvice?
编辑:根据请求编写的ErrorController代码
@RestController
public class ControllerCustomError implements ErrorController{
我使用的是Spring Boot 2.1.4.RELEASE。 我有三个gradle模块:应用程序、集成测试和web。应用程序和集成测试都依赖于web,web依赖于我编写的一个库。该库具有以下类: @Configuration
public class WebErrorAutoConfiguration {
@Bean
public CatchAllExceptionHandler catchAllExceptionHandler() {
return new CatchAllExceptionHandler();
}
@Condition
在我的MVC2项目中,我最初使用的是NINObject2,并编写了这个版本的NinjectControllerFactory:
public class NinjectControllerFactory : DefaultControllerFactory
{
private IKernel kernel = new StandardKernel(new HandiGamerServices());
protected override IController GetControllerInstance(System.Web.Routing.RequestContext re
因为我设置了最大文件上传限制,所以我得到
org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 2097152 bytes
上传file.It时出现错误,我应该处理这个错误并返回JSON格式的响应,而不是ErrorController中提供的错误页面
我想捕捉这个异常,并给出JSON响应,而不是ErrorPage。
@RequestMapping(value="/
我已经在ASP.NET MVC site 中实现了错误处理。
有了404个错误,一切都能正常工作。但是如何正确地为401 error显示用户友好的屏幕?它们通常不会抛出可以在Application_Error()内部处理的异常,而是操作返回HttpUnauthorizedResult。一种可能的方法是将以下代码添加到Application_EndRequest()方法的末尾
if (Context.Response.StatusCode == 401)
{
throw new HttpException(401, "You are not authorised");
使用博客上发布的和一个主题,我已经创建了一个控制器,它可以处理我所有的错误页面。
在我的Global.asax.cs中,我有下面这段代码:
protected void Application_Error()
{
var exception = Server.GetLastError();
var httpException = exception as HttpException;
var routeData = new RouteData();
Response.Clear()
我正在尝试使用: api/error/LogJsError和一些formdatacollection来访问特定的webapi操作。我有一个这样的ErrorController:
public class ErrorController : ApiController
{
[System.Web.Http.HttpPost]
public void LogJsError(FormDataCollection form)
{
var s = form.Aggregate("Javascript error: message", (curren
我在一个.Net核心web应用程序上工作,我们希望能够重定向到我们的自定义错误页面的网址类型。该网站托管在Azure上,似乎应用程序中没有处理此错误。下面是我正在使用的URL类型:
www.mywebsite.com/%22http://www.yahoo.com/%22
显示的错误页面如下所示:
The page cannot be displayed because an internal server error has occurred.
此外,当我检查Azure上的实时HTTP流量时,它没有显示发生错误。
编辑:显然azure根本不能处理这种类型的请求:
它在第二个url中查找配置文
我用Spring Boot设置了一个非常简单的文件上传。我想知道当超过最大文件大小时,是否有一种简单的方法来显示错误页面。
我上传了一个非常简单的例子,展示了我想要实现的。
基本上,这个想法是在全局Spring异常处理程序中捕获MultipartException:
@ControllerAdvice
public class UploadExceptionHandler {
@ExceptionHandler(MultipartException.class)
public ModelAndView handleError(MultipartException exception)