All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edi.rule.work.custom.JSRuleException Maven / Gradle / Ivy

The newest version!
package edi.rule.work.custom;

import edi.rule.extend.interfaces.IJSRuleHttpResponse;
import edi.rule.model.JSResult;
import edi.rule.work.constant.JSRuleJsonSign;

/**
 * @apiNote Spring @Transactional 默认情况下只会回滚RuntimeException运行时异常,throw new Exception()默认不会回滚
 * @apiNote 此时必须使用 rollbackFor 属性指定回滚的异常,JSRuleException继承的是RuntimeException运行时异常,因此不会出现此问题
 * */
public final class JSRuleException extends RuntimeException{

	/**
	 * 

其子类为返回给调用端的消息对象 * */ public IJSRuleHttpResponse response; /** *

写入到本地日志的消息,如xxx:{} * */ public String log; /** *

写入到本地日志的参数,如log.error("xxx:{}",params) * */ public Object[] params; public JSRuleException() {super();} /** *

只支持后端做日志,调用端返回默认消息对象 * */ public JSRuleException(Throwable cause, boolean enableSuppression, boolean writableStackTrace,String...log) { super(jointMessage(log), cause, enableSuppression, writableStackTrace); } /** *

只支持后端做日志,调用端返回默认消息对象 * */ public JSRuleException(Throwable cause) { super(cause); this.log = cause.getMessage(); this.params = new Object[0]; } /** *

只支持后端做日志,调用端返回默认消息对象 * */ public JSRuleException(Throwable cause,String...log) { super(jointMessage(log),cause); } /** *

支持后端做日志并且支持打印log参数行为,调用端返回默认消息对象 *

使用该方法时需注意该异常是否在其它地方被捕获,这样有可能因为处理该异常的地方没有处理参数,进而导致参数为空{} * @param params 参考{@link JSRuleException#params}说明 * */ public JSRuleException(String log,Object...params){ super(log); this.log = log; this.params = params; } /** *

支持后端做日志,同时支持自定义返回调用端日志对象 * */ public JSRuleException(IJSRuleHttpResponse response, Throwable cause) { this(cause); this.response = response; } /** *

只支持后端做日志,调用端返回默认消息对象 * */ public JSRuleException(String...log) { this(jointMessage(log),new Object[0]); } public JSRuleException(String message, Throwable cause) { this(JSResult.fail(message),cause); } public JSRuleException(Integer code,String message, Throwable cause) { this(JSResult.fail(code,message),cause); } /** *

只支持调用端做日志,后端日志默认使用调用端日志 * */ public JSRuleException(IJSRuleHttpResponse response) { this(response, response.getMessage()); } /** *

支持后端做日志并且支持打印log参数行为,同时支持自定义返回调用端日志对象 *

使用该方法时需注意该异常是否在其它地方被捕获,这样有可能因为处理该异常的地方没有处理参数,进而导致参数为空{} * @param params 参考{@link JSRuleException#params}说明 * */ public JSRuleException(IJSRuleHttpResponse response, String log, Object...params) { this(log,params); this.response = response; } public JSRuleException(Integer code, String message, String log, Object...params){ this(JSResult.fail(code,message),log,params); } public JSRuleException(String message, String log, Object...params){ this(JSResult.fail(message),log,params); } public static String jointMessage(String...message){ return String.join(JSRuleJsonSign.TIPS,message); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy