Android Log.d打印行号

时间:2018-09-01 11:35:18

标签: android

我在try / catch语句中捕获了以下代码:

            catch (Exception e){
            Log.d("MyTag", "exception ->: "+e.toString());
        }

它打印:

MyTag: exception ->: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference

由于发现很难在代码中找到此空对象引用字符串,我如何使其与错误消息一起打印行号?

2 个答案:

答案 0 :(得分:1)

最简单的解决方案是将Log语句重写为:

Log.d("MyTag", "Exception while doing ...", e);

(在其中用try块试图做的几句话替换“ ...”)

这将打印完整的堆栈跟踪以及两个字符串to LogCat

广大的大多数Android开发人员都选择了这条路线,并且应该走这条路线。

如果出于某种原因,您确实只想获取行号e.getStackTrace()[0].getLineNumber() should have that information。但是,在许多情况下,这将不是Java文件中的行号,而是发生异常的其他Java文件中的行号。这就是为什么打印堆栈跟踪记录是更好的选择的原因,因为您可以获得更多的文件和行号。

答案 1 :(得分:0)

使用该方法以Throwable结尾:

catch (Exception e){
            Log.d("MyTag", "exception ->:", e);
}

Log Api