Java获取异常堆栈信息

    public String getExceptionStack(Exception e){

        StackTraceElement[] stackTraceElements = e.getStackTrace();
        String prefix = "Exception in thread "+"\""+Thread.currentThread().getName()+"\" ";
        String result = prefix+e.toString() + "\n";
        int lenth = stackTraceElements.length - 1;
        for (int i = 0;i<=lenth;i++){
            result = result + "\tat "+stackTraceElements[i].getClassName()+".";
            result = result + stackTraceElements[i].getMethodName()+"(";
            result = result + stackTraceElements[i].getFileName()+".";
            result = result + stackTraceElements[i].getLineNumber()+")\n";
        }

        return result;
    }

原文地址:https://www.cnblogs.com/scorates/p/11253296.html

时间: 2024-12-09 01:16:09

Java获取异常堆栈信息的相关文章

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..

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

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

重构获取异常栈信息--printStackTrace

MyStackTrace: /** * * @author wumingkun * @version 1.0.0 * @Description */ package com.demo.stacktrace; import java.io.PrintStream; /** * @author wumingkun * */ public class MyStackTrace { public static String getStackTrace(Throwable errors) { String

java获取天气预报的信息

运行效果: 主要功能: 1,jsp页面输入省份和城市 根据条件获取当地的天气信息 2,java代码 利用第三方的省份和城市的路径地址 本工程主要实现java获取天气预报的信息步骤1,创建工程weatherDemo2,创建包结构3,创建类4,访问第三方接口 打开主机方法5,获取省份id方法6,获取市id方法7,获取天气的方法8,编写servlet9,发布运行 java代码 创建WeatherDemo类 /** * @version 1.0 * @author ren * 天气预报的核心接口 * *

java获取当前操作系统的信息

java获取当前操作系统的信息 JavaOS虚拟机UnixEXT 从网上收集的一些关于java获取操作系统信息的方法,现在总结一下: 1获取本机的IP地址: Java代码   private static String getIpAddress() throws UnknownHostException { InetAddress address = InetAddress.getLocalHost(); return address.getHostAddress(); } 2获得网卡地址 Ja

Java异常堆栈信息转String

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

在Linux与Windows上获取当前堆栈信息

在编写稳定可靠的软件服务时经常用到输出堆栈信息,以便用户/开发者获取准确的运行信息.常用在日志输出,错误报告,异常检测. 在Linux有比较简便的函数获取堆栈信息: #include <stdio.h> #include <execinfo.h> #include <signal.h> #include <stdlib.h> #include <unistd.h> void handler(int sig) { void *array[5]; s

异常堆栈信息输出工具类

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(pr

主动抛异常获取调试堆栈信息

android开发中常见的调试方法有: 下断点(break point)调试跟踪: 此方法局限性最大,要求程序是可中断,且非系统应用等. 打印日志(systemout.log都是此类): 此方法应用最广泛,也常在应用整个流程的关键位置或方法上记录,方便bug出现时的状态及流程获取.但是日志也仅局限于单个代码位置的状态记录,难以获取更广的上下文信息.本文要补充讨论的内容就是要解决这个问题: 通过获取命令调用的堆栈,来获取更全面的调试信息.至于如何获取这边提供主动抛异常的方法: try { thro