package com.dianping.pigeon.remoting.common.domain.generic;
/**
* @author qi.yin
* 2016/06/03 下午2:15.
*/
public enum StatusCode {
Success((byte) 0), // 成功
ApplicationException((byte) 1), // 业务异常,业务接口方法定义抛出的异常
RuntimeException((byte) 2), // 运行时异常,一般由业务抛出
RpcException((byte) 3), // 框架异常,包含没有被下列异常覆盖到的框架异常
TransportException((byte) 4), // 传输异常
ProtocolException((byte) 5), // 协议异常
DegradeException((byte) 6), // 降级异常
SecurityException((byte) 7), // 安全异常
ServiceException((byte) 8), // 服务异常,如服务端找不到对应的服务或方法
RemoteException((byte) 9); // 远程异常
private byte code;
private StatusCode(byte code) {
this.code = code;
}
public byte getCode() {
return this.code;
}
public static StatusCode getStatusCode(byte code) {
switch (code) {
case 0:
return Success;
case 1:
return ApplicationException;
case 2:
return RuntimeException;
case 3:
return RpcException;
case 4:
return TransportException;
case 5:
return ProtocolException;
case 6:
return DegradeException;
case 7:
return SecurityException;
case 8:
return ServiceException;
case 9:
return RemoteException;
default:
throw new IllegalArgumentException("invalid StatusCode code: " + code);
}
}
}