McException.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. package com.malk.server.common;
  2. import com.malk.utils.UtilServlet;
  3. import lombok.AllArgsConstructor;
  4. import lombok.Builder;
  5. import lombok.Data;
  6. import lombok.NoArgsConstructor;
  7. import org.apache.commons.lang3.StringUtils;
  8. import java.util.Map;
  9. /**
  10. * 通用错误类 [错误抛出与拦截详见 CatchException]
  11. */
  12. @Data
  13. @Builder
  14. @NoArgsConstructor
  15. @AllArgsConstructor
  16. public class McException extends RuntimeException {
  17. private static final long serialVersionUID = 5131110381034275224L;
  18. private boolean success;
  19. private String code;
  20. private String message;
  21. // 错误来源
  22. @Builder.Default
  23. private String source = "MC";
  24. public McException(McREnum rEnum) {
  25. this(rEnum.isSuc(), rEnum.getCode(), rEnum.getMsg());
  26. }
  27. public McException(String code, String message) {
  28. this(false, code, message);
  29. }
  30. public McException(boolean suc, String code, String message) {
  31. super(message);
  32. this.success = suc;
  33. this.code = code;
  34. this.message = message;
  35. }
  36. /// 断言错误: 自定义错误信息 ///
  37. /**
  38. * 错误断言: 枚举
  39. */
  40. public static void assertException(boolean isAssert, McREnum rEnum) {
  41. if (isAssert) {
  42. throw McException.builder().code(rEnum.getCode()).message(rEnum.getMsg()).build();
  43. }
  44. }
  45. /**
  46. * 错误断言: 信息
  47. */
  48. public static void assertException(boolean isAssert, String code, String message) {
  49. if (isAssert) {
  50. throw McException.builder().code(code).message(message).build();
  51. }
  52. }
  53. /**
  54. * 错误断言: 来源
  55. */
  56. public static void assertException(boolean isAssert, String code, String message, String source) {
  57. if (isAssert) {
  58. throw McException.builder().code(code).message(message).source(source).build();
  59. }
  60. }
  61. /**
  62. * 断言: 业务校验不通过
  63. */
  64. public static void
  65. assertAccessException(boolean isAssert, String message) {
  66. if (isAssert) {
  67. throw McException.builder().code(McREnum.VALIDATED_ACCESS.getCode()).message(message).build();
  68. }
  69. }
  70. /**
  71. * 断言: 参数校验不通过
  72. */
  73. public static void assertParamException(boolean isAssert, String message) {
  74. if (isAssert) {
  75. throw McException.builder().code(McREnum.VALIDATED_PARAM.getCode()).message(message).build();
  76. }
  77. }
  78. /**
  79. * 断言: 参数不合法
  80. * -
  81. * 实例: McException.assertParamException_Null(UtilServlet.isNull(param, "projectName", "userName"));
  82. */
  83. public static void assertParamException_Null(String key) {
  84. if (StringUtils.isNotBlank(key)) {
  85. throw McException.builder().code(McREnum.VALIDATED_PARAM.getCode()).message(("参数不能为空: ").concat(key)).build();
  86. }
  87. }
  88. public static void assertParamException_Null(Map param, String... keys) {
  89. McException.assertParamException_Null(UtilServlet.isNull(param, keys));
  90. }
  91. public static void assertParamException_Null(Map param, String keys) {
  92. McException.assertParamException_Null(UtilServlet.isNull(param, keys));
  93. }
  94. /**
  95. * 断言: 参数不能为空
  96. */
  97. public static void assertParamException_Rule(String key) {
  98. if (StringUtils.isNotBlank(key)) {
  99. throw McException.builder().code(McREnum.VALIDATED_PARAM.getCode()).message(("参数不合法: ").concat(key)).build();
  100. }
  101. }
  102. /// 快速枚举: 自定义错误信息 ///
  103. /**
  104. * 参数不合法
  105. */
  106. public static McR exceptionParam(String message) {
  107. throw McException.builder().code(McREnum.VALIDATED_PARAM.getCode()).message(message).build();
  108. }
  109. /**
  110. * 无效token
  111. */
  112. public static McR exceptionToken(String message) {
  113. throw McException.builder().code(McREnum.TOKEN_INVALID.getCode()).message(message).build();
  114. }
  115. /**
  116. * 授权无效
  117. */
  118. public static McR exceptionAuth(String message) {
  119. throw McException.builder().code(McREnum.NOT_AUTHORIZED.getCode()).message(message).build();
  120. }
  121. /**
  122. * 业务校验不通过
  123. */
  124. public static McR exceptionAccess(String message) {
  125. throw McException.builder().code(McREnum.VALIDATED_ACCESS.getCode()).message(message).build();
  126. }
  127. /**
  128. * 方法执行失败
  129. */
  130. public static McR exceptionExecute(String message) {
  131. throw McException.builder().code(McREnum.METHOD_EXECUTE.getCode()).message(message).build();
  132. }
  133. /**
  134. * 未知错误
  135. */
  136. public static McR exceptionUnknown(String message) {
  137. throw McException.builder().code(McREnum.UNKNOWN_EXCEPTION.getCode()).message(message).build();
  138. }
  139. }