`
chenshangge
  • 浏览: 87835 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类

springMVC使用@ControllerAdvice实现异常处理

 
阅读更多
控制器异常处理:

@ResponseStatus(value=HttpStatus.NOT_FOUND)
public class StaffNotFoundException extends Exception {

}


自定义StaffNotFoundException异常类:员工信息没有找到异常。
@ResponseStatus(value=HttpStatus.NOT_FOUND)作用是将该异常映射为http 404异常,就是浏览器接受到的是404错误。



@Controller
@RequestMapping("/")
public class PCInfoController {
	
	@Autowired
	PCInfoRestClient PCInfoRestClient;
	
	/**
	 * 个人信息页面
	 * @param
	 * @return
	 * @throws StaffNotFoundException 
	 */
	@RequestMapping(value="info",method=RequestMethod.GET)
	public String staffInfo(Model model) throws StaffNotFoundException {
		
		HashMap staff = PCInfoRestClient.getStaff();
		
		if(staff == null)
			throw new StaffNotFoundException();
		
		
		model.addAttribute("staff", staff);
		return "info";
	}
	
	
	@RequestMapping(value="staff/notfound",method=RequestMethod.GET)
	public String error(Model model)
	{
		return "error";
	}
	
}


控制器中如果获得staff是null 则抛出StaffNotFoundException异常。


@ControllerAdvice
public class CommonExceptionHandler {

	@ExceptionHandler(StaffNotFoundException.class)
	public String handleStaffNotFound(Exception exception, WebRequest request)
	{
		return "redirect:/staff/notfound";
	}
}



@controllerAdvice注解的CommonExceptionHandler 类中,handleStaffNotFound()方法上加了@ExceptionHandler(StaffNotFoundException.class)注解,表示处理当控制器抛出StaffNotFoundException异常时,将会委托该方法来处理。

@controllerAdvice最为实用的一个场景就是将所有@ExceptionHandler方法收集到一个类中,这样所有的异常都能在一个地方进行一致处理。

@ControllerAdvice默认所有控制的抛出的异常都会在这个类进行处理
@ControllerAdvice(annotations = {PCInfoController .class}) 配置你需要拦截的控制器,
@ControllerAdvice(basePackages = "com.demo") 配置你需要路径下的控制器
分享到:
评论

相关推荐

    Maven+SpringMVC实现统一异常处理

    本篇将详细介绍如何利用Maven和SpringMVC来实现统一的异常处理机制。 首先,我们需要理解什么是统一异常处理。在Web应用中,异常处理通常是分散在各个控制器方法中的,这使得代码复用性差,且不易维护。统一异常...

    SpringMVC异常处理知识点总结

    SpringMVC异常处理知识点总结 SpringMVC 异常处理是指在 Spring MVC 框架中对异常情况的处理和解决机制。...在实际开发中,需要根据不同的业务需求来设计和实现异常处理机制,以便能够更好地处理异常情况。

    SpringMVC 中的拦截器与异常处理

    此外,还可以使用`@ControllerAdvice`注解和`@ExceptionHandler`注解来定义一个全局的异常处理类。 3. 错误页面配置:在SpringMVC的配置中,可以通过`<error-page>`标签定义不同类型的错误代码对应的错误页面,或者...

    SpringMVC是实现登陆

    此外,错误处理和异常处理也是必不可少的部分。可以使用@ControllerAdvice和@ExceptionHandler注解全局处理可能出现的异常,向用户友好地展示错误信息。 总结起来,使用SpringMVC实现登录功能涉及的知识点包括:...

    springmvc如何进行异常处理

    除了局部处理外,我们还可以使用 @ControllerAdvice 注解来实现全局异常处理。例如: ```java @ControllerAdvice public class ExceptionController { @ExceptionHandler public ModelAndView error(Exception ...

    尚硅谷SpringMVC部分全套教学文档笔记

    - SpringMVC通过@ControllerAdvice和@ExceptionHandler注解实现全局异常处理。 - 可以定义一个全局的异常处理器,处理所有Controller中抛出的异常,提供统一的错误页面或JSON响应。 通过以上知识点的学习,读者...

    精通SpringMVC

    8. **异常处理**:SpringMVC提供了统一的异常处理机制,通过@ControllerAdvice和@ExceptionHandler可以全局处理特定类型的异常。 9. **文件上传与下载**:SpringMVC支持文件上传和下载功能,通过MultipartFile接口...

    SpringMVC简单源码实现

    6. **异常处理**: SpringMVC提供了一种优雅的方式来处理应用中的异常。通过`@ExceptionHandler`注解,可以在控制器中定义特定异常的处理方法。此外,全局异常处理器(`@ControllerAdvice`)可以捕获所有控制器的...

    springmvc 其他引用资源(reference)

    6. **异常处理**: - 通过 @ExceptionHandler 注解处理特定类型的异常,可以自定义错误页面。 - 全局异常处理器:使用 @ControllerAdvice 注解创建全局异常处理器。 7. **上传下载**: - 使用 ...

    spring mvc异常简单处理

    总结起来,Spring MVC的异常处理机制是多方面的,包括`@ExceptionHandler`、`@ControllerAdvice`、`HandlerExceptionResolver`以及`web.xml`中的错误页面配置。通过这些工具,开发者可以创建健壮且用户友好的应用...

    Spring MVC中异常处理的三种方式

    Spring MVC 中的异常处理可以通过实现 HandlerExceptionResolver、使用 @ControllerAdvice 和 @ExceptionHandler 注解、使用 ErrorController 三种方式来实现。每种方式都有其特点和适用场景,我们可以根据实际情况...

    springmvc 异常统一处理的三种方式详解.docx

    对于更复杂和个性化的异常处理,开发者可以实现Spring的HandlerExceptionResolver接口,创建自己的异常处理器。自定义处理器提供更大的灵活性,可以在处理异常时执行任何必要的逻辑,如记录日志、发送报警邮件等,...

    SpringMVC+源代码,最新讲解,入门必看

    9. **异常处理**:SpringMVC通过@ControllerAdvice和@ExceptionHandler可以全局捕获和处理异常,提供统一的错误页面。 10. **上传下载**:SpringMVC提供了处理文件上传和下载的功能,通过MultipartFile接口处理文件...

    SpringMVCC.zip

    13. **异常处理**: - 可以通过@ControllerAdvice和@ExceptionHandler全局处理异常,提高代码的可读性和可维护性。 14. **RESTful API支持**: - SpringMVC支持创建RESTful服务,通过@RequestMapping的GET、POST...

    SpringMvc/SpringBoot HTTP通信加解密的实现

    @ControllerAdvice是一个SpringMvc/SpringBoot提供的注解,可以被用于实现全局的异常处理和加解密。在这里,我们可以使用@ControllerAdvice来实现DecodeRequestBodyAdvice类,从而实现全局的加解密。 SpringMvc/...

    SpringMvc自定义注解获取用户登陆信息.rar

    在Spring MVC中,我们通常使用`@ControllerAdvice`或`HandlerInterceptor`来全局处理自定义注解。这两种方式都可以在请求处理之前或之后进行干预,检查注解并执行相应的逻辑。 4. **获取用户登录信息** 要获取用户...

    Springmvc第二天

    3. **Springmvc自定义异常处理**:Spring MVC提供了@ControllerAdvice和@ExceptionHandler注解,用于全局异常处理。通过@ControllerAdvice注解,可以创建一个全局的异常处理器,然后在其中的@ExceptionHandler方法中...

    SpringMVC框架架构介绍

    通过定义@ControllerAdvice和@ExceptionHandler注解,可以实现全局异常处理,捕获并处理所有Controller中的未捕获异常。 七、记录异常到日志: 结合日志框架(如Log4j或SLF4J),在全局异常处理中记录异常信息。 ...

    SpringMVC实现的简单的增删改查

    9. **异常处理**:可以自定义异常处理器,通过@ControllerAdvice和@ExceptionHandler注解全局捕获和处理异常。 10. **视图渲染**:视图通常使用JSP、Thymeleaf或Freemarker等技术。在Controller方法中返回视图名,...

    springMVC教案.rar

    7. **异常处理**: SpringMVC允许定义全局或特定类型的异常处理器,通过@ControllerAdvice和@ExceptionHandler注解实现。 8. **视图解析**: 视图解析器如InternalResourceViewResolver,负责根据视图名查找实际...

Global site tag (gtag.js) - Google Analytics