获得徽章 0
- 详情:
yoshihisaonoue.wordpress.com
今天日志系统发现异常日志无堆栈信息,发现 jvm 对于一些异常 如NullPointerException、ArithmeticException 在多次重复抛出之后,后续的抛出会省略堆栈。对应jvm配置:-XX:-OmitStackTraceInFastThrow
示例代码:
public class TestOmitStackTraceInFastThrow {
public static void main(String[] args) {
int counter = 0;
while(true) {
try {
Object obj = null;
/*
* If we cause the exception every time(= without this "if" statement), the optimization does not happen somehow.
* So, cause it conditionally.
*/
if(counter % 2 == 0) {
obj = new Object();
}
// Cause NullpointerException
obj.getClass();
}catch(NullPointerException e) {
e.printStackTrace();
}
counter++;
}
}
}展开评论点赞 - xdm,我了解到优秀的程序员在编码之前都会进行设计,比如梳理实现的整个流程啥的。我发现我这方面能力及其欠缺,就是拿到一个需求,就直接开始编码,然后陷入细节,很多时候还会出现写了半天的代码发现逻辑是错的从来。我想了解大家在写代码之前怎么做准备工作,比如画流程图啥的。赞过21
,第一次买![[呲牙]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_2.cd1e2bd.png)