Exception-----------------打印Exception的详细错误

日常生活中,我们可能会需要将错误的信息打印出来,那么正确的做法是

方法一:
log.error("【获取到程序出现异常】:",e);
方法二:
   public static String getExceptionAllinformation(Exception ex){
     
        StringBuilder sOut = new StringBuilder();
        sOut.append(ex.getMessage() + "\r\n");
        StackTraceElement[] trace = ex.getStackTrace();
        for (StackTraceElement s : trace) {
     
            sOut.append("\tat " + s + "\r\n");
        }
        return sOut.toString();
    }
在需要的地方,直接调用这个方法
       try {
     
               if(br != null){
     
                   br.close();
               }
           } catch (IOException e) {
     
             logger.error("【关闭读取文件失败】"+ExceptionUtils.getExceptionAllinformation(e));
           }

方法三:
   /**
     * 获取堆栈信息
     * @param throwable
     * @return
     */
    public static String getStackTrace(Throwable throwable){
     
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        try {
     
            throwable.printStackTrace(pw);
            return sw.toString();
        } finally {
     
            pw.close();
        }
    }
在需要使用的地方,调用
public void handleException(Exception e){
     
     log.error(ThrowableUtil.getStackTrace(e));
}

下面是错误的方法,这样只会输出错误的类型

e.getMessage();

下面会导致程序不能正常运行下去,中途退出

e.printStackTrace();

你可能感兴趣的:(Exception,Java,Exception)