我在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
由于发现很难在代码中找到此空对象引用字符串,我如何使其与错误消息一起打印行号?
答案 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)