java中,想记录异常信息,该如何获得发生异常的类名和方法名呢不要用log4j等。

java中,想记录异常信息,该如何获得发生异常的类名和方法名呢不要用log4j等。,第1张

我觉得你写的是对的

StackTraceElement[] st = exgetStackTrace();

for (StackTraceElement stackTraceElement : st) {

String exclass = stackTraceElementgetClassName();

String method = stackTraceElementgetMethodName();

Systemoutprintln(exclass);

Systemoutprintln(method);

}

}

这个就是整个异常抛出的栈结构啊

public class Test2 {

public static void main(String[] args){

int[] a = {1,2,3};

for (int i = 0; i < 5; i++) {

try {

Systemoutprintln(a[i]);

} catch (ArrayIndexOutOfBoundsException e) {

Systemoutprintln(e);

}

}

}

}

其实你上一个帖子我已经和你说过这样的问题了,你就是想不通,老把vc当java这种高级语言来看待,你的理念一直有问题,所以你的问题也是不能解决的。

你可以试想一下,在汇编程序里,有没有像java或vb一样的捕获这种异常信息的方法呢?可能你会觉得很可笑,汇编怎么可能有这种应用呢?对,那你为什么就认为VC就一定有这种应用呢?难道只是因为和java的语法相似?如果只是因为这样,难道说php也和VC是一个开发理念?VC并不是高级语言,也不是什么面向对象的编程,更不是什么弱类型,可以说完全没有高级语言的特征,这和java或vb的开发理念有着天壤之别,VC里很多事情都要去自己控制和处理以及捕获,不然别人哪还用创建个句柄判断一次,处理个句柄再判断一次的来写代码?一个这种错误捕获不就搞定了?按这种理论随便到网上下个VC范例就应该随处可见这样的过程,难道你认为有这样的好东西别人会不用?只有你能想到?但问题是你见过有人在VC里这样用吗?事实上我看了那么多无论是官方还是非官方的代码,都没发现VC有这么个用法的。VC不会像高级语言那样有那么多自动化的东西,如自动分配内存或释放内存,自动数据类型的定义及转换等,java可以说处理起这种东西来很轻松,而VC就完全不是这么回事,对于这种东西弄不好就奔溃掉或常驻内存,所以千万不要把VC看作java,他们本质上是不同的两种开发语言,所以开发理念也是不同的。你既然原来是搞java的,开发工具换了,开发理念也是要换的,如果想用高级语言的方式去玩这种中级语言或低级语言,除了走弯路不会有什么别的收获,当然,当你绕弯路绕多了会对这种绕弯路的痛苦深有体会,可能会比别人都理解得更透彻为什么不要再这么弄,好处是什么、坏处是什么之类的,但却浪费了很多精力和时间去走这样的过程。而这种开发理念的不清晰,还会在很多问题上让你绕弯路,奉劝你应该搞清楚VC到底是什么?有什么功能和函数?别人是如何用他的?开发理念到底是什么?否则你会在很多事情上都套用这种想法,最终走回来发现VC原来应该这样用才后悔就不好了。

以上就是关于java中,想记录异常信息,该如何获得发生异常的类名和方法名呢不要用log4j等。全部的内容,包括:java中,想记录异常信息,该如何获得发生异常的类名和方法名呢不要用log4j等。、编写能产生ArrayIndexOutOfBoundsException异常的代码,并将其捕获,在控制台上输出异常信息、vc6下,如何捕获异常信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9575051.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存