andorid 打印调用栈

Android调试过程中经常会出现程序出现的结果不是我们预期的结果,那就需要加Log打印调试,看调用过程是否正确,此时就需要打印程序的调用栈,特别是Android代码相当庞大,打印堆栈更有利于我们分析问题,下面就记录下平时用到不退出程序打印堆栈的方法。

验证的方法相关简单,在Activity的类中创建一个方法ThrowException,在onCreate中调用此方法,看打印出什么

在android中如果找不到方法调用位置可以使用   打印调用栈

public void  ThrowException() {
        // 调试打印堆栈而不退出
        Log.d(TAG, Log.getStackTraceString(newThrowable()));
        // 创建异常打印堆栈
        Exception e = new Exception("this is a log");
        e.printStackTrace();
        // 获取当前线程的堆栈
        for(StackTraceElement i : Thread.currentThread().getStackTrace()) {
           Log.i(TAG, i.toString());
        }
        RuntimeException re = newRuntimeException();
        re.fillInStackTrace();
        Log.i(TAG, "stackTrace", re);
        // 主动抛出异常调试
        try
        {
            Log.i(TAG, "--------------------NullPointerException-------1");
            thrownew  NullPointerException();
        } catch(NullPointerException e1) {
            // TODO: handle exception
            Log.i(TAG, "--------------------------------NullPointerException");
            Log.e(TAG, Log.getStackTraceString(e1));
            // e1.printStackTrace();
        }
        Log.i(TAG, "--------------------------------NullPointerException-----------end");

    }

1、Log.d(TAG, Log.getStackTraceString(new Throwable()));

 

Exception e = new Exception("this is a log");
e.printStackTrace();

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

达帮主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值