- 主业务逻辑
class BusinessExceptionTst {
public String MainTestFunction() {
ReturnMessage returnMessage = new ReturnMessage();
for (int loop=0;loop<=2;loop++) {
try {
tstFun1();
tstFun2();
tstFun3();
} catch (BusinessRuntimeExceptionTypeA e) {
e.printStackTrace();
returnMessage = e.getReturnMessage();
} catch (BusinessRuntimeExceptionTypeB e) {
e.printStackTrace();
returnMessage = e.getReturnMessage();
} catch (BusinessRuntimeExceptionTypeC e) {
e.printStackTrace();
returnMessage = e.getReturnMessage();
} finally {
System.out.printf("message: error code: %s, error mesage: %s\n",
returnMessage.getMessageCode(),
returnMessage.getErrorMessage());
}
}
return returnMessage.getMessageCode();
}
public void tstFun1() throws BusinessRuntimeExceptionTypeA {
if (RandomUtil.randomInt(1,3) == 1) {
throw new BusinessRuntimeExceptionTypeA("A111111", "BusinessRuntimeExceptionTypeA:111111ErrorCode");
}
}
public void tstFun2() throws BusinessRuntimeExceptionTypeB {
if (RandomUtil.randomInt(1,3) == 2) {
throw new BusinessRuntimeExceptionTypeB("B222222", "BusinessRuntimeExceptionTypeB:222222ErrorCode");
}
}
public void tstFun3() throws BusinessRuntimeExceptionTypeC {
if (RandomUtil.randomInt(1,3) == 3) {
throw new BusinessRuntimeExceptionTypeC("C333333", "BusinessRuntimeExceptionTypeC:333333ErrorCode");
}
}
}
- 异常类定义
package com.myibs.test.service.exceptionTst;
import lombok.Data;
@Data
public class BusinessRuntimeExceptionTypeA extends RuntimeException{
ReturnMessage returnMessage = new ReturnMessage();
public BusinessRuntimeExceptionTypeA(){
returnMessage.setMessageCode("888888");
returnMessage.setErrorMessage("Message: 888888");
}
public BusinessRuntimeExceptionTypeA(String rtnCode, String errorMessage) {
returnMessage.setMessageCode(rtnCode);
returnMessage.setErrorMessage(errorMessage);
}
}
package com.myibs.test.service.exceptionTst;
import lombok.Data;
@Data
public class BusinessRuntimeExceptionTypeB extends RuntimeException{
ReturnMessage returnMessage = new ReturnMessage();
public BusinessRuntimeExceptionTypeB(){
returnMessage.setMessageCode("888888");
returnMessage.setErrorMessage("Message: 888888");
}
public BusinessRuntimeExceptionTypeB(String rtnCode, String errorMessage) {
returnMessage.setMessageCode(rtnCode);
returnMessage.setErrorMessage(errorMessage);
}
}
package com.myibs.test.service.exceptionTst;
import lombok.Data;
@Data
public class BusinessRuntimeExceptionTypeC extends RuntimeException{
ReturnMessage returnMessage = new ReturnMessage();
public BusinessRuntimeExceptionTypeC(){
returnMessage.setMessageCode("888888");
returnMessage.setErrorMessage("Message: 888888");
}
public BusinessRuntimeExceptionTypeC(String rtnCode, String errorMessage) {
returnMessage.setMessageCode(rtnCode);
returnMessage.setErrorMessage(errorMessage);
}
}