精华内容
下载资源
问答
  • Java中获取Exception的详细信息

    万次阅读 2017-07-07 16:54:51
    而通过的Exception.getMessage()方法只能获得异常的名称而不能获取哪里出现的异常,对于排错意义不大。   这里罗列几个网上查到的还不错的可以获取详细信息的方法。 //1、 public String getTrace(Throwable t)...

    当代码出现异常时通常都需要将异常信息写入到日志中,异常信息越详细越有利于问题的排查。而通过的Exception.getMessage()方法只能获得异常的名称而不能获取哪里出现的异常,对于排错意义不大。

     

    这里罗列几个网上查到的还不错的可以获取详细信息的方法。

    //1、
    public String getTrace(Throwable t) {
    	StringWriter stringWriter= new StringWriter();
    	PrintWriter writer= new PrintWriter(stringWriter);
    	t.printStackTrace(writer);
    	StringBuffer buffer= stringWriter.getBuffer();
    	return buffer.toString();
    }
    
    //2、
    public static String getExceptionAllinformation(Exception ex){
            String sOut = "";
            StackTraceElement[] trace = ex.getStackTrace();
            for (StackTraceElement s : trace) {
                sOut += "\tat " + s + "\r\n";
            }
            return sOut;
    }
    
    //3、
    public static String getExceptionAllinformation_01(Exception ex) {
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            PrintStream pout = new PrintStream(out);
            ex.printStackTrace(pout);
            String ret = new String(out.toByteArray());
            pout.close();
            try {
                 out.close();
            } catch (Exception e) {
            }
            return ret;
    }
    
    //4、
    private static String toString_02(Throwable e){  
             StringWriter sw = new StringWriter();  
             PrintWriter pw = new PrintWriter(sw, true);  
             e.printStackTrace(pw);  
             pw.flush();   
             sw.flush();  
             return sw.toString(); 
    } 

    其中方法1忘了从哪里搜刮来的了,后面三个来自于:http://blog.csdn.net/long95wang/article/details/8089489。

     

    推荐使用方法3或方法4。

    方法2虽说能够返回“哪里出现了异常”但是它不会报告是你什么异常,而其他三个不但告诉你出现了什么异常,还告诉你那里出现了异常。

     

    方法1算是比较好用的,但是从传过来的参数来看,似乎太大了点,咱们平常开发用个Exception就差不多了没必要为了一个简单异常使用Throwable。当然啊,catch中可以catch Excetpion,然后调用Exception.getCause()获取到Throwable对象,但是拿到的Throwable通常都会空的,到Throwable.printStackTrace()时依旧会报错。这一篇(链接:http://jxyang.iteye.com/blog/1709340)有说到用反射来解决这个问题,但是我没看懂实在没整出来,所以不敢贸然的建议大家用。

     

    最后,来一篇讲的更详细的获取Exception的方法:Java Exception 捕获和展示

    (PS:之所以不罗列这个方法,主要是觉得以上链接说的太详细,我没必要为了一个日志写那么一大堆代码,有点不值当)

    展开全文
  • 获取Exception的详细信息

    千次阅读 2017-06-18 10:08:13
    获取Exception的详细信息   我自己运行测试的环境:windowsXP、eclipse3.5.1、jdk1.6 下面的三个方法都是获取异常的详细信息,或许的异常详细信息以字符串的形式返回,保持栈堆载的风格   方法一: public ...

    获取Exception的详细信息

     

    我自己运行测试的环境:windowsXP、eclipse3.5.1、jdk1.6

    下面的三个方法都是获取异常的详细信息,或许的异常详细信息以字符串的形式返回,保持栈堆载的风格

     

    方法一:

    public static String getExceptionAllinformation(Exception ex){
            String sOut = "";
            StackTraceElement[] trace = ex.getStackTrace();
            for (StackTraceElement s : trace) {
                sOut += "\tat " + s + "\r\n";
            }
            return sOut;
     }

    方法二:

     public static String getExceptionAllinformation_01(Exception ex) {
             ByteArrayOutputStream out = new ByteArrayOutputStream();
             PrintStream pout = new PrintStream(out);
             ex.printStackTrace(pout);
             String ret = new String(out.toByteArray());
             pout.close();
             try {
                  out.close();
             } catch (Exception e) {
             }
             return ret;
     }

    方法三:

        private static String toString_02(Throwable e){  
                StringWriter sw = new StringWriter();  
                PrintWriter pw = new PrintWriter(sw, true);  
                e.printStackTrace(pw);  
                pw.flush();   
                sw.flush();  
                return sw.toString();  
        } 

     

    展开全文
  • Java获取 Exception异常详细信息

    千次阅读 2020-05-28 23:52:10
    public static String getExceptionAllInfo(Exception ex) { ByteArrayOutputStream out = null; PrintStream pout = null; String ret = ""; try { out = new ByteArrayOutputStream(); pout = new ...

     

    public static String getExceptionAllInfo(Exception ex) {
            ByteArrayOutputStream out = null;
            PrintStream pout = null;
            String ret = "";
            try {
            	out = new ByteArrayOutputStream();
            	pout = new PrintStream(out);
            	ex.printStackTrace(pout);
    	        ret = new String(out.toByteArray());
    	        out.close();
            }catch(Exception e){
            	return ex.getMessage();
            }finally{
            	if(pout!=null){
            		pout.close();
            	}
            }
            return ret;
    }
    

     

    展开全文
  • Java 获取Exception详细信息,Java获取异常详细内容 ================================ ©Copyright 蕃薯耀2021-01-29 https://www.cnblogs.com/fanshuyao/ import java.io.PrintWriter; import java.io....

    Java 获取Exception详细信息,Java获取异常详细内容

    ================================

    ©Copyright 蕃薯耀 2021-01-29

    https://www.cnblogs.com/fanshuyao/

    import java.io.PrintWriter;
    import java.io.StringWriter;
    
    public class ErrorMsgUti {
    
        public static String getErrorMsg(Throwable thr) {
            StringWriter stringWriter = new StringWriter();
            PrintWriter printWriter= new PrintWriter(stringWriter);
            try {
                
                thr.printStackTrace(printWriter);
                return stringWriter.toString();
                
            } finally {
                
                if(printWriter != null) {
                    printWriter.close();
                }
            }
        }
        
        
    }
    

    ================================

    ©Copyright 蕃薯耀 2021-01-29

    https://www.cnblogs.com/fanshuyao/

    展开全文
  • 获取java报错堆栈信息
  • * 获取错误的堆栈信息 * @param throwable * @return */ public String getStackTrace(Throwable throwable){ StringWriter stringWriter=new StringWriter(); PrintWriter printWriter=new ...
  • 获取错误信息需要在配置文件中配置 server.error.include-exception=true server.error.include-message=always
  • 获取异常信息exception对象exception内置对象用来处理JSP文件执行时发生的所有错误和异常。exception对象和Java的所有对象一样,都具有系统的继承结构,exception对象几乎定义了所有异常情况,这样的exception对象...
  • 下面介绍几种python中获取异常信息的方法,这里获取异常(Exception信息采用try...except...程序结构。如下所示 try:  ... except Exception, e:  ... 1、str(e) 返回字符串类型,只给出异常信息,不...
  • JSP获取异常信息exception对象

    万次阅读 2017-02-23 14:05:44
    随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、博主微信(guyun297890152)、QQ技术交流群(183198395)。 exception对象用来处理JSP文件执行时发生的所有错误和异常...
  • private static String getCrashMessage(Exception ex) {  Writer writer = new StringWriter();  PrintWriter printWriter = new PrintWriter(writer);  ex.printStackTrace(printWriter);
  • 在java开发中,捕获Exception之后,我们常用的是e.printStackTrace()方法,将异常信息打印到控制台。 有的时候,我们可能想获取e.printStackTrace()的结果,将其作为一个字符串记录到日志,或者自定义的文件中。...
  • Python中获取异常(Exception信息

    万次阅读 2017-10-13 09:42:44
    下面介绍几种python中获取异常信息的方法,这里获取异常(Exception信息采用try...except...程序结构。如下所示 try:  ... except Exception, e:  ...   1、str(e) 返回字符串类型,只给...
  • try { System.out.println(1/0);... } catch (Exception e) { e.printStackTrace(); final Writer result = new StringWriter(); final PrintWriter printWriter = new PrintWriter(result); e.fillIn
  • throw new Exception(); } catch (Exception ex) { StackTraceElement[] st = ex.getStackTrace(); for (StackTraceElement stackTraceElement : st) { String exclass = stackTraceElement.getClassName...
  • log4j 输出完整的Exception信息

    万次阅读 2016-08-05 17:12:18
    现在项目中都用的是log4j...此时log.error(e.getMessage()),只能输出异常的信息,不包括异常的抛出顺序 我的同事还自己写了一个util来从Exception对象中取得e.printStackTrace()的字符串形式。。。。 突然发现不用
  • public static String getExceptionAllInfo(Exception ex) { ByteArrayOutputStream out = null; PrintStream pout = null; String ret = ""; try { out = new ByteArrayO
  • python 获取exception 名字

    千次阅读 2015-08-20 14:03:47
    【1】 前提:在自己不知道某个具体的异常名字,但是却要捕捉具体的异常。try: """error code""" …… except Exception, exc: print exc.__class__ ……
  • Java获取Exception详情方法实现如下: /** * 获取Exception详情 * @param ex * @return */ public static String getExceptionAllinformation(Exception ex){ ByteArrayOutputStream out = new ...
  • Java 中 手动抛出异常: throw new Exception("错误信息") 错误信息获得
  • Java将Exception信息转为String字符串

    万次阅读 2017-05-25 11:04:06
    一、前言在java中,异常机制是非常有用的构成部分,异常信息对于查找错误来说是必不可少至关重要的信息,因此我们希望在发生错误的时候先看到捕捉到底异常信息。然而,通常的异常信息的输出使用e.printStackTrace()...
  • 异常信息获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置并进行调试。python用异常对象(exception object)来表示异常。遇到错误后会引发异常,如果异常未被处理或捕捉,程序就会用所谓的...
  • 如何获取 Exception 的 HResult 值

    千次阅读 2008-05-16 10:23:00
    在编程中往往需要获取Exception 的HResult值以得到具体的错误原因。但这个值是一个保护类型的属性,无法直接读取。可通过 System.Runtime.InteropServices.Marshal.GetHRForException 这个函数来获取

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,121,232
精华内容 448,492
关键字:

获取exception信息