public class ServiceRuntimeException extends RuntimeException {
private static final long serialVersionUID = -7610488146748705981L;
/**
* 错误代码
*/
@Getter
private transient ResultCode resultCode;
/**
* 直接使用errorCode中的消息
* @param resultCode 错误代码
*/
public ServiceRuntimeException(ResultCode resultCode) {
super(resultCode.getMessage());
this.resultCode = resultCode;
}
/**
* 使用自定义错误消息(不推荐)
* @param resultCode 错误代码
* @param message 错误消息
*/
public ServiceRuntimeException(ResultCode resultCode, String message) {
super(message);
this.resultCode = resultCode;
}
/**
* 对其他异常包装成本异常,使用错误代码中的消息
* @param resultCode 错误代码
* @param cause 错误异常
*/
public ServiceRuntimeException(ResultCode resultCode, Throwable cause) {
super(resultCode.getMessage(), cause);
this.resultCode = resultCode;
}
/**
* 将其他异常包装成本异常,使用自定义消息
* @param resultCode 错误代码
* @param message 错误消息
* @param cause 错误异常
*/
public ServiceRuntimeException(ResultCode resultCode, String message, Throwable cause) {
super(message, cause);
this.resultCode = resultCode;
}
/**
* 错误代码中消息是pattern,传入参数进行格式化
* @param resultCode 错误代码
* @param args 格式化参数
*/
public static ServiceRuntimeException build(ResultCode resultCode, Object... args) {
return new ServiceRuntimeException(resultCode, MessageFormat.format(resultCode.getMessage(), args));
}
/**
* 将其他异常包装成本异常,错误代码中消息是一种pattern,传入参数进行格式化
* @param resultCode 错误代码
* @param cause 错误异常
* @param args 格式化参数
*/
public static ServiceRuntimeException build(ResultCode resultCode, Throwable cause, Object... args) {
return new ServiceRuntimeException(resultCode, MessageFormat.format(resultCode.getMessage(), args), cause);
}
/**
* 将其他异常包装成本异常,错误消息中消息是一种pattern,传入参数进行格式化
* @param resultCode 错误代码
* @param message 错误消息
* @param args 格式化参数
*/
public static ServiceRuntimeException build(ResultCode resultCode, String message, Object... args) {
return new ServiceRuntimeException(resultCode, MessageFormat.format(message, args));
}
运行时异常消息封装类
最新推荐文章于 2024-06-15 08:58:25 发布
本文探讨了在Java编程中如何有效地处理运行时异常,并介绍了一个自定义异常消息封装类的设计与使用,旨在提高代码的健壮性和易读性。通过封装异常信息,开发者可以更方便地定位问题,同时提供给用户清晰的错误反馈。
6万+

被折叠的 条评论
为什么被折叠?



