免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11869 | 回复: 7
打印 上一主题 下一主题

在java中如何在运行时定位语句行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-01 11:37 |只看该作者 |倒序浏览
在c中,有_FILE_,_LINE_等运行宏,可以在运行时
应用,可以记录输出行的位置,对于纠错有很大帮助,
但在java中我如何定位输出的位置,比如说
我在应用中输出错误System.out.println("this is an err";
但我无法知道该错误出现在哪一行?

论坛徽章:
0
2 [报告]
发表于 2004-06-01 13:28 |只看该作者

在java中如何在运行时定位语句行

通过打印行数来解决问题的习惯我不推荐。java里也没有这样的macro。我建议你还是:
【1】首先一切可能发生的异常,无论你有没有估计到,如果你没有特意阻止的话,java都会很认真的替你把exception的stacktrace给打印到终端上,一眼看过去就知道问题在哪里。而且从你的例子看,你如果想报告错误,最好还是throw一个exception。这样你就可以得到大量的信息。
【2】实在不行还有很多的很好的java调试器可以用,比如eclipse的JDT,好处是再throw一个exception以后,你可以点一下鼠标就可以找到出错的那个文件的那一行。Eclipse会替你做寻找的工作。
【3】最好的解决问题的方法是合理的程序结构和优美的编码风格。通常需要很多debugging的工作才能运行的程序都需要重写或是重构(refactoring)

论坛徽章:
0
3 [报告]
发表于 2004-06-01 16:08 |只看该作者

在java中如何在运行时定位语句行

我说的输出不一定是错误,在应用中,有些输出是应用逻辑上的,比如说
最后输出错误可能需要查找前面的若干log输出,当找到可疑信息后,迅速定位
到该信息附近的语句,查找程序中可能出现的问题。这样对于较大的应用
的查错很有好处,可以迅速找到引发故障点。知道是哪个文件哪行附近
引发的故障,主要是针对故障分析的

论坛徽章:
0
4 [报告]
发表于 2004-06-05 10:58 |只看该作者

在java中如何在运行时定位语句行

可能你的应用逻辑很复杂。不过我的观点是如果能在除了问题之后回头判断那个数据是“可疑”的,为什么不能在代码里判断哪个值是正确的,哪个值是错误的,至少是可能错误的,然后报警?
完全可以把人工判断“可疑”数据的方法抽象出来,加到程序里作为错误检查的一个条件啊?
另外你的如果所有的log输出都是输出类名和方法名,也一样可以迅速定位啊?

论坛徽章:
0
5 [报告]
发表于 2004-06-07 14:24 |只看该作者

在java中如何在运行时定位语句行

可能有这样的情况,我是一个接口程序,要读别人传过来的数据,打印出来好核对,请教各位大虾是怎么做的呢?

论坛徽章:
0
6 [报告]
发表于 2004-06-07 14:37 |只看该作者

在java中如何在运行时定位语句行

那就打印就是了,可以用System.out也可以用java.util.logging.*

论坛徽章:
0
7 [报告]
发表于 2004-06-10 16:55 |只看该作者

在java中如何在运行时定位语句行

建议使用log4j包来实现

论坛徽章:
0
8 [报告]
发表于 2004-06-20 13:13 |只看该作者

在java中如何在运行时定位语句行

I am not sure whether I fully understand your question or not. But it seems like you just need a small trick as belows, which I have done before.

System.out.println(" <FileName>;.<function Name>;.<Number>; <others>; ";
<FileName>;<function Name>; <Number>; you have to manually
define it.

It is a little tedious, but it works. You may have your own debuging style like above to handle it.

Not sure it helps you or not. It is just my way. Cheers !
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP