在web后台使用controller、service、dao模式开发时。controller负责调用业务方法和返回前台数据,service层负责处理业务逻辑返回数据到controller,dao负责访问数据库。因为service返回的数据需要在controller层包装下才能返回到前台。而service的返回值只有一种。对于复杂的异常情况(非程序异常)来说是不够的,所以返回的都是正常业务的数据。
对于此种情况可以使用自定义异常来处理。
基本思路:
1、自定义一个异常类。
2、编写全局的异常处理类,捕获自定义异常统一处理,生成前台可识别的消息返回给前台。
3、service层处理业务逻辑遇到异常情况时throw自定义异常。
代码实现:
1、自定义异常类
public class ExpectedException extends RuntimeException {
private static final long serialVersionUID = 4061732202885069884L;
/**
* 错误码
*/
private int code;
/**
* 错误描述
*/
private String msg;
public ExpectedException(