哪些Java异常最常见?

哪些Java异常最常见?

Samebug有大量来自网络的崩溃:带有网页的堆栈跟踪,我们找到了它,附加了。我们根据许多标准对这些崩溃进行了分组:异常类型,抛出异常的软件组件,我们找到它们的主要来源等。我们还确定了常见的错误模式(堆栈跟踪中的几个部分在几个不同的堆栈跟踪)这给开发人员带来了很多麻烦。

错误模式是不同堆栈跟踪的常见元素

然后,我们开始分析数据,以获得对最常见的Java异常的一些见解。我们查看了3个测量值:收集的崩溃次数,与异常相关的堆栈跟踪的网页数量以及我们的算法识别的错误模式数量。自从在Samebug,我们正致力于创建一个有助于轻松修复错误的平台,这种分析至关重要。我们解决的问题是绝对必须知道哪些问题最常发生,以便我们能够有效。以下是我们从分析中发现的内容:

在查看崩溃次数时,我们可以看到,毫不奇怪,NullPointerException是迄今为止最常见的错误。它也可以在异常类型中的最大数量的网页上找到,如图2所示:

这与前一个之间的区别在于网页可以包含几个不同的堆栈跟踪(例如,多个堆栈跟踪粘贴到单个GitHub问题中)。我们可以看到异常类型的顺序存在一些差异:例如,与仅在崩溃次数中测量的重要性相比,IllegalArgumentException和IllegalStateException在Web上的讨论中具有更显着的存在性。

在图3中,我们根据与它们相关的错误模式的数量对异常类型进行了排序。可以看出,一些异常类型的排名低于第一个图。这意味着较少的模式连接到它们,但这些模式平均有更多的崩溃。

最引人注目的类型是ClassNotFoundException。实际上,当我们处理错误模式分组时,我们已经注意到,在不同崩溃中最常见的模式,换句话说,由众多不同的开发人员共享,与ClassNotFoundException相关。我们已经写过如何处理ClassNotFoundExceptions之前让我们将其崩溃/错误模式分布与NullPointerException的分布进行比较。我们发现许多ClassNotFoundException模式在我们的数据库中都有大量的崩溃。同时在NullPointerException的情况下,有更多的错误模式,但这些错误模式平均收集的崩溃数量明显减少。我们在下面的图表中说明了这一点(请注意,这些数字是对数刻度)。

在NullPointerException的情况下,有超过30,000个模式,每个模式有少于10个连接崩溃和65个模式,100-999崩溃。在ClassNotFoundException的情况下,只有10000个模式,相关崩溃少于10个,但与NullPointerExceptions相比,还有更多模式,崩溃超过100个。甚至有1000多个连接崩溃的模式,一个模式有超过10000个连接崩溃。

这个结果可能让许多人感到意外,所以让我们找出背后的原因:

导致NullPointerException崩溃的代码中的调用非常分散,因为它们来自许多不同的库并在出错时立即生效,而ClassNotFoundException是由JVM的标准机制生成的,因此导致许多堆栈跟踪具有相同的错误模式。

可以认为NullPointerException和ClassNotFoundException都是错误的,所以每个开发人员都知道如何轻松地解决它们,但是它们在论坛上的频繁出现与这个假设相矛盾,所以编写如何处理它们的指南对很多开发人员来说肯定是有帮助的。在NullPointerException的情况下,很难编写一些通用解决方案,因为每个库中的问题都不同。在ClassNotFoundException的情况下,许多开发人员都会遇到一些常见的错误模式。当然,您可以使用针对不同环境或框架的特定解决方案,但提供的一般解决方案仍然有意义。

我们进行了这种分析,因此我们可以巧妙地选择开始的模式。我们得出的结论是,即使NullPointerException存在更多崩溃,ClassNotFoundException错误模式也应该首先出现。


 

 

全部评论

相关推荐

老粉都知道小猪猪我很久没更新了,因为秋招非常非常不顺利,emo了三个月了,接下来说一下我的情况吧本人是双非本 专业是完全不着计算机边的非科班,比较有优势的是有两段大厂实习,美团和字节。秋招面了50+场泡池子泡死的:滴滴 快手 去哪儿 小鹏汽车 不知名的一两个小厂其中字节13场 两次3面挂 两次2面挂 一次一面挂其中有2场面试题没写出来,其他的都是全a,但该挂还是挂,第三次三面才面进去字节,秋招加暑期总共面了22次字节,在字节的面评可以出成书了快手面了8场,2次实习的,通过了但没去,一次2面挂 最后一次到录用评估 至今无消息滴滴三面完 没几天挂了 所有技术面找不出2个问题是我回答不上来的,三面还来说我去过字节,应该不会考虑滴滴吧,直接给我干傻了去哪儿一天速通 至今无消息小鹏汽车hr 至今无消息美团2面挂 然后不捞我了,三个志愿全部结束,估计被卡学历了虾皮二面挂 这个是我菜,面试官太牛逼了拼多多二面挂 3道题也全写了 也没问题是回答不出来的 泡一周后挂腾讯面了5次 一次2面挂 三次一面挂,我宣布腾讯是世界上最难进的互联网公司然后还有一些零零散散的中小厂,但是数量比较少,约面大多数都是大厂。整体的战况非常惨烈,面试机会少,就算面过了也需要和各路神仙横向对比,很多次我都是那个被比下去的人,不过这也正常,毕竟谁会放着一个985的硕士不招,反而去招一个双非读化学的小子感觉现在互联网对学历的要求越来越高了,不仅仅要985还要硕士了,双非几乎没啥生存空间了,我感觉未来几年双非想要进大厂开发的难度应该直线上升了,唯一的打法还是从大二刷实习,然后苟个转正,不然要是去秋招大概率是炮灰。而且就我面字节这么多次,已经开始问很多ai的东西了,你一破本科生要是没实习没科研懂什么ai啊,纯纯白给了
不知名牛友_:爸爸
秋招你被哪家公司挂了?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务