package com.moral.monitor.util;  
 | 
  
 | 
import java.io.PrintWriter;  
 | 
import java.io.StringWriter;  
 | 
  
 | 
/**  
 | 
 * Created by dgw on 2017/4/10.  
 | 
 */  
 | 
public class Exceptions {  
 | 
    /**  
 | 
     * 将CheckedException转换为UncheckedException.  
 | 
     */  
 | 
    public static RuntimeException unchecked(Exception e) {  
 | 
        if (e instanceof RuntimeException) {  
 | 
            return (RuntimeException) e;  
 | 
        } else {  
 | 
            return new RuntimeException(e);  
 | 
        }  
 | 
    }  
 | 
  
 | 
    /**  
 | 
     * 将ErrorStack转化为String.  
 | 
     */  
 | 
    public static String getStackTraceAsString(Exception e) {  
 | 
        StringWriter stringWriter = new StringWriter();  
 | 
        e.printStackTrace(new PrintWriter(stringWriter));  
 | 
        return stringWriter.toString();  
 | 
    }  
 | 
  
 | 
    /**  
 | 
     * 判断异常是否由某些底层的异常引起.  
 | 
     */  
 | 
    public static boolean isCausedBy(Exception ex, Class<? extends Exception>... causeExceptionClasses) {  
 | 
        Throwable cause = ex.getCause();  
 | 
        while (cause != null) {  
 | 
            for (Class<? extends Exception> causeClass : causeExceptionClasses) {  
 | 
                if (causeClass.isInstance(cause)) {  
 | 
                    return true;  
 | 
                }  
 | 
            }  
 | 
            cause = cause.getCause();  
 | 
        }  
 | 
        return false;  
 | 
    }  
 | 
}  
 |