// Path: naive-core/src/main/java/com/goribun/naive/core/constants/Const.java
// public class Const {
// 
//     //扫描rpc服务的包路径配置key
//     public static final String SCAN_PACKAGE_KEY_ = "scanPackage";
// 
//     public static final String IS_TRACE_STACK = "isTraceStack";
// 
//     //日期格式
//     public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss SSS";
// 
// 
// }
// 
// Path: naive-core/src/main/java/com/goribun/naive/core/exception/ExceptionDetail.java
// public class ExceptionDetail {
// 
//     private String name;
//     private String msg;
//     private ExceptionDetail cause;
//     private String stack;
//     private HashMap<String, ExceptionDetail> children;
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getMsg() {
//         return msg;
//     }
// 
//     public void setMsg(String msg) {
//         this.msg = msg;
//     }
// 
//     public ExceptionDetail getCause() {
//         return cause;
//     }
// 
//     public void setCause(ExceptionDetail cause) {
//         this.cause = cause;
//     }
// 
//     public String getStack() {
//         return stack;
//     }
// 
//     public void setStack(String stack) {
//         this.stack = stack;
//     }
// 
//     public HashMap<String, ExceptionDetail> getChildren() {
//         return children;
//     }
// 
//     public void setChildren(HashMap<String, ExceptionDetail> children) {
//         this.children = children;
//     }
// }


import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.reflect.Constructor;
import com.goribun.naive.core.constants.Const;
import com.goribun.naive.core.exception.ExceptionDetail;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
package com.goribun.naive.core.utils;



/**
 * RPC异常处理工具类
 *
 * @author wangxuesong
 */
public class ExceptionUtil {

    private static final Logger LOGGER = LoggerFactory.getLogger(ExceptionUtil.class);


    private ExceptionUtil() {
    }

    /**
     * 构造异常信息（序列化）
     */
// Path: naive-core/src/main/java/com/goribun/naive/core/constants/Const.java
// public class Const {
// 
//     //扫描rpc服务的包路径配置key
//     public static final String SCAN_PACKAGE_KEY_ = "scanPackage";
// 
//     public static final String IS_TRACE_STACK = "isTraceStack";
// 
//     //日期格式
//     public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss SSS";
// 
// 
// }
// 
// Path: naive-core/src/main/java/com/goribun/naive/core/exception/ExceptionDetail.java
// public class ExceptionDetail {
// 
//     private String name;
//     private String msg;
//     private ExceptionDetail cause;
//     private String stack;
//     private HashMap<String, ExceptionDetail> children;
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getMsg() {
//         return msg;
//     }
// 
//     public void setMsg(String msg) {
//         this.msg = msg;
//     }
// 
//     public ExceptionDetail getCause() {
//         return cause;
//     }
// 
//     public void setCause(ExceptionDetail cause) {
//         this.cause = cause;
//     }
// 
//     public String getStack() {
//         return stack;
//     }
// 
//     public void setStack(String stack) {
//         this.stack = stack;
//     }
// 
//     public HashMap<String, ExceptionDetail> getChildren() {
//         return children;
//     }
// 
//     public void setChildren(HashMap<String, ExceptionDetail> children) {
//         this.children = children;
//     }
// }


// Path: naive-core/src/main/java/com/goribun/naive/core/utils/ExceptionUtil.java
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.reflect.Constructor;
import com.goribun.naive.core.constants.Const;
import com.goribun.naive.core.exception.ExceptionDetail;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

package com.goribun.naive.core.utils;



/**
 * RPC异常处理工具类
 *
 * @author wangxuesong
 */
public class ExceptionUtil {

    private static final Logger LOGGER = LoggerFactory.getLogger(ExceptionUtil.class);


    private ExceptionUtil() {
    }

    /**
     * 构造异常信息（序列化）
     */
    public static ExceptionDetail formatException(Throwable throwable) {