From 012235d05d8dc7c2decdc7229d93033b0399ecbb Mon Sep 17 00:00:00 2001
From: xiejun <xiejun@vci-tech.com>
Date: 星期日, 10 十一月 2024 15:49:53 +0800
Subject: [PATCH] 集成获取mdm分发通用数据格式接口集成
---
Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/utils/Exceptions.java | 99 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 99 insertions(+), 0 deletions(-)
diff --git a/Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/utils/Exceptions.java b/Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/utils/Exceptions.java
new file mode 100644
index 0000000..23d4a16
--- /dev/null
+++ b/Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/utils/Exceptions.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2018-2028, DreamLu All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: DreamLu 鍗㈡槬姊� (596392912@qq.com)
+ */
+
+package org.springblade.core.tool.utils;
+
+import org.springblade.core.tool.support.FastStringWriter;
+
+import java.io.PrintWriter;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.UndeclaredThrowableException;
+
+/**
+ * 寮傚父澶勭悊宸ュ叿绫�
+ *
+ * @author L.cm
+ */
+public class Exceptions {
+
+ /**
+ * 灏咰heckedException杞崲涓篣ncheckedException.
+ *
+ * @param e Throwable
+ * @return {RuntimeException}
+ */
+ public static RuntimeException unchecked(Throwable e) {
+ if (e instanceof Error) {
+ throw (Error) e;
+ } else if (e instanceof IllegalAccessException ||
+ e instanceof IllegalArgumentException ||
+ e instanceof NoSuchMethodException) {
+ return new IllegalArgumentException(e);
+ } else if (e instanceof InvocationTargetException) {
+ return new RuntimeException(((InvocationTargetException) e).getTargetException());
+ } else if (e instanceof RuntimeException) {
+ return (RuntimeException) e;
+ } else if (e instanceof InterruptedException) {
+ Thread.currentThread().interrupt();
+ }
+ return Exceptions.runtime(e);
+ }
+
+ /**
+ * 涓嶉噰鐢� RuntimeException 鍖呰锛岀洿鎺ユ姏鍑猴紝浣垮紓甯告洿鍔犵簿鍑�
+ *
+ * @param throwable Throwable
+ * @param <T> 娉涘瀷鏍囪
+ * @return Throwable
+ * @throws T 娉涘瀷
+ */
+ @SuppressWarnings("unchecked")
+ private static <T extends Throwable> T runtime(Throwable throwable) throws T {
+ throw (T) throwable;
+ }
+
+ /**
+ * 浠g悊寮傚父瑙e寘
+ *
+ * @param wrapped 鍖呰杩囧緱寮傚父
+ * @return 瑙e寘鍚庣殑寮傚父
+ */
+ public static Throwable unwrap(Throwable wrapped) {
+ Throwable unwrapped = wrapped;
+ while (true) {
+ if (unwrapped instanceof InvocationTargetException) {
+ unwrapped = ((InvocationTargetException) unwrapped).getTargetException();
+ } else if (unwrapped instanceof UndeclaredThrowableException) {
+ unwrapped = ((UndeclaredThrowableException) unwrapped).getUndeclaredThrowable();
+ } else {
+ return unwrapped;
+ }
+ }
+ }
+
+ /**
+ * 灏咵rrorStack杞寲涓篠tring.
+ *
+ * @param ex Throwable
+ * @return {String}
+ */
+ public static String getStackTraceAsString(Throwable ex) {
+ FastStringWriter stringWriter = new FastStringWriter();
+ ex.printStackTrace(new PrintWriter(stringWriter));
+ return stringWriter.toString();
+ }
+}
--
Gitblit v1.9.3