异常堆栈信息输出工具类

public class MyExceptionUtils {

    /**
     * 输入异常的堆栈信息
     * @param aThrowable
     * @return
     */
    public static String getStackTrace(Throwable e) {
        final Writer result = new StringWriter();
        final PrintWriter printWriter = new PrintWriter(result);
        e.printStackTrace(printWriter);
        return result.toString();
    }

    /**
     * 获取e.printStackTrace() 的具体信息,赋值给String 变量,并返回
     * @param e Exception
     * @return e.printStackTrace() 中 的信息
     */
    public static String getStackTraceInfo(Exception e) {
        StringWriter sw = null;
        PrintWriter pw = null;
        try {
            sw = new StringWriter();
            pw = new PrintWriter(sw);
            e.printStackTrace(pw);//将出错的栈信息输出到printWriter中
            pw.flush();
            sw.flush();
            return sw.toString();
        } catch (Exception ex) {
            return "发生错误";
        } finally {
            if (sw != null) {
                try {
                    sw.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
            if (pw != null) {
                pw.close();
            }
        }
    }
}

原文地址:https://www.cnblogs.com/yanjiexiansheng/p/11934591.html

时间: 2024-08-07 19:28:43

异常堆栈信息输出工具类的相关文章

日志如何打印异常堆栈信息。

package com.doctor.slf4j; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 如何打印异常堆栈信息. * @author doctor * * @time 2014年12月11日 上午9:49:00 */ public class LogThrowableRule { private final Logger log = LoggerFactory.g

slf4j如何打印java异常堆栈信息throwable对象

SLF4J 1.6.0 以前的版本,如果打印异常堆栈信息,必须用 log.error(String msg, Throwable t) log.info等对应方法. 如果msg含有变量,一般用String.format方法格式化msg. 如果用 error(String format, Object... arguments) 等其它方法,异常堆栈信息会丢失. 幸好,SLF4J 1.6.0以后的版本对这个不友好的异常信息log 改进了. error(String format, Object..

系统内存信息获取工具类

/** * 得到系统内存信息的工具类 * @author zwenkai */ public class SystemInfoUtils { /** * 得到运行的进程总个数 * * @param context * @return 运行进程个数 */ public static int getRunningProcessCount(Context context) { ActivityManager am = (ActivityManager) context.getSystemService

获取SIM卡信息的工具类

本工具类可以获取手机的IMSI.本机的手机号码.SIM卡的服务商. 移动.联通可正常获取到SIM卡的手机卡号,但是电信的获取不到.... 首先,需要在AndroidManifest.xml清单配置文件中添加权限: <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 下面是工具类的代码 SIMCardInfo.java import android.content.Context; imp

iOS Crash闪退信息捕获工具类

IOS SDK中提供了一个现成的函数 NSSetUncaughtExceptionHandler 用来做异常处理,但功能非常有限,而引起崩溃的大多数原因如:内存访问错误,重复释放等错误捕获不到,因为这些异常抛出的是Signal,所以必须要专门做Signal处理.工具类的实现源码如下: 头文件 #import <Foundation/Foundation.h> extern NSString *const UncaughtExceptionHandlerSignalKey; extern NSS

Android设备网络、屏幕尺寸、SD卡、本地IP、存储空间等信息获取工具类

Android设备网络.屏幕尺寸.SD卡.本地IP.存储空间.服务.进程.应用包名等信息获取的整合工具类. 1 package com.qiyu.ddb.util; 2 3 import android.annotation.SuppressLint; 4 import android.annotation.TargetApi; 5 import android.app.Activity; 6 import android.app.ActivityManager; 7 import androi

分享一个用OnGUI在手机上打印调试信息的工具类

游戏发布到手机上调试的时候有时候会需要在屏幕上打印一些信息,我写了一个小工具类,分享出来,用的是OnGUI,很简单,直接上代码了 using UnityEngine; using System.Collections; using System.Collections.Generic; public class OnGUIDebug : MonoBehaviour { public static OnGUIDebug Instance; public int FontSize = 40; pub

Java异常堆栈信息转String

平时使用e.getMessage()或e.printStackTrace(); 第一种报异常时要throw new RuntimeException("异常"),只能得到异常2字. 第二种e.printStackTrace();只是打印,不返回任何数据. 而服务器一般是集群或其他方式部署,查看日志的话太麻烦,可以吧堆栈信息转成String等类型,然后进行保存到数据库.放在页面隐藏域中方便查看. 介绍3种方法供选择: 方法一: package name.xu;public class C

发送邮箱验证信息的工具类

package cn.itcast.travel.util; import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.util.Properties; /** * 发邮件工具类 */public final class MailUtils { private static final String USER = "[email