视频地址
https://www.imooc.com/video/14339
异常
异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。
为什么要统一异常处理
减少代码冗余,提高写代码的姿势。
如何统一呢
- 返回值类型格式统一。
例如:
要有返回值的code、message和返回的数据
package com.imooc.domain;
/**
* http请求返回的最外层对象
* Created by 廖师兄
* 2017-01-21 13:34
*/
public class Result<T> {
/** 错误码. */
private Integer code;
/** 提示信息. */
private String msg;
/** 具体的内容. */
private T data;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
与此同时
- 可以写一个工具类进行代码优化,优化返回操作
返回成功
返回失败
package com.imooc.utils;
import com.imooc.domain.Result;
/**
* Created by 廖师兄
* 2017-01-21 13:39
*/
public class ResultUtil {
public static Result success(Object object) {
Result result = new Result();
result.setCode(0);
result.setMsg("成功");
result.setData(object);
return result;
}
public static Result success() {
return success(null);
}
public static Result error(Integer code, String msg) {
Result result = new Result();
result.setCode(code);
result.setMsg(msg);
return result;
}
}
- 报错信息也可以统一写一个enum枚举,规范异常处理。
package com.imooc.enums;
/**
* Created by 廖师兄
* 2017-01-21 14:23
*/
public enum ResultEnum {
UNKONW_ERROR(-1, "未知错误"),
SUCCESS(0, "成功"),
PRIMARY_SCHOOL(100, "我猜你可能还在上小学"),
MIDDLE_SCHOOL(101, "你可能在上初中"),
//这里可以这么处理
;
private Integer code;
private String msg;
ResultEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public String getMsg() {
return msg;
}
}