日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java中什么时候应用异常_生产Java应用程序中的十大异常类型-基于1B事件

發(fā)布時(shí)間:2023/12/3 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中什么时候应用异常_生产Java应用程序中的十大异常类型-基于1B事件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java中什么時(shí)候應(yīng)用異常

Pareto記錄原理:97%的記錄錯(cuò)誤語(yǔ)句是由3%的唯一錯(cuò)誤引起的

在最新的數(shù)據(jù)整理帖子之后,我們收到了很多反饋和問(wèn)題,我們發(fā)現(xiàn)97%的記錄錯(cuò)誤是由10個(gè)唯一錯(cuò)誤引起的 。 根據(jù)大眾的需求,我們將更深入地研究此研究中包含的1,000多個(gè)應(yīng)用程序中的頂級(jí)異常類型。

來(lái)吧。

(順便說(shuō)一句,這是我們的第一篇推薦配樂(lè), 請(qǐng)檢查一下自己 )

無(wú)須再做:按類型劃分的頂級(jí)異常

為了提取數(shù)據(jù),我們從Takipi的錯(cuò)誤分析微代理監(jiān)視的1000多個(gè)應(yīng)用程序中提取了匿名統(tǒng)計(jì)信息,并檢查了每個(gè)公司的十大例外類型。 然后,我們將所有數(shù)據(jù)合并,得出總的前十名。

每個(gè)生產(chǎn)環(huán)境都不同,研發(fā)團(tuán)隊(duì)使用不同的第三方庫(kù),并且擁有自己的自定義例外類型。 從更大的角度看,標(biāo)準(zhǔn)異常脫穎而出,并且可以看到一些有趣的模式。

真數(shù)據(jù)

1. NullPointerException – 70%的生產(chǎn)環(huán)境

是。 臭名昭著的NullPointerException位于#1。 空參考文獻(xiàn)的發(fā)明者查爾斯·安東尼·理查德·霍爾(Sir Charles Antony)

“我稱之為我十億美元的錯(cuò)誤。 它是1965年使用空引用的發(fā)明……這導(dǎo)致了無(wú)數(shù)的錯(cuò)誤,漏洞和系統(tǒng)崩潰,在最近40年中可能造成十億美元的痛苦和損害。”

在我們研究的70%的生產(chǎn)環(huán)境中,NPE排名前十,位居第一。 在Takipi ,我們實(shí)際上有一個(gè)特殊的警報(bào),每當(dāng)在系統(tǒng)上引入新的NullPointerException時(shí),我們都可以通過(guò)它來(lái)知道自己的設(shè)置 。

塔基皮NPE怪物

2. NumberFormatException – 55%的生產(chǎn)環(huán)境

在#2中是NumberFormatException,它在您嘗試將字符串轉(zhuǎn)換為數(shù)字值并且String格式不正確時(shí)發(fā)生。 它擴(kuò)展了IllegalArgumentException,該異常也在這里#3出現(xiàn)。

一種簡(jiǎn)單的修復(fù)方法是確保您傳遞給parse方法的輸入傳遞以下正則表達(dá)式:

  • 對(duì)于整數(shù)值:“-?\\ d +”
  • 對(duì)于浮點(diǎn)值:“-?\\ d +。\\ d +”
  • 3. IllegalArgumentException – 50%的生產(chǎn)環(huán)境

    緊隨其后的是IllegalArgumentException,排在第3位,在本次調(diào)查的50%的生產(chǎn)環(huán)境中排名前10位。

    IllegalArgumentException實(shí)際上使您免于麻煩,并在將參數(shù)從意外類型傳遞給方法時(shí)拋出該異常。 例如,某些需要X類型的方法,而您使用Y類型作為參數(shù)來(lái)調(diào)用它。 同樣,這是由于未檢查您作為其他方法的輸入發(fā)送的錯(cuò)誤而導(dǎo)致的錯(cuò)誤。

    IllegalArgumentException塔基皮怪獸

    4. RuntimeException – 23%的生產(chǎn)環(huán)境

    前十個(gè)列表中的所有異常對(duì)象(除Exception外)均未選中,并擴(kuò)展了RuntimeException。 但是,在#4處,我們面臨著“純” RuntimeException,在Java中,該語(yǔ)言實(shí)際上并未拋出任何異常。 那么這是怎么回事?

    有兩種主要用例可從您的代碼中顯式引發(fā)RuntimeException:

  • 引發(fā)新的“通用”未經(jīng)檢查的異常
  • 重新拋出:
    • 將一般未經(jīng)檢查的異常“包裝”到另一個(gè)擴(kuò)展了RuntimeException的異常周圍
    • 取消檢查異常
  • 關(guān)于已檢查與未檢查以及我們?cè)诖嗣枋龅淖詈笠粋€(gè)用例的著名故事來(lái)自亞馬遜的AWS開(kāi)發(fā)工具包,該工具僅會(huì)拋出未檢查的異常并拒絕使用已檢查的異常。

    Takipi RuntimeExceptionMonster

    5. IllegalStateException – 22%的生產(chǎn)環(huán)境

    在第5名中,IllegalStateException是本帖子中涵蓋的1000多個(gè)應(yīng)用程序中的22%中排名前10位的例外。

    當(dāng)您嘗試在不適當(dāng)?shù)臅r(shí)間使用方法時(shí),會(huì)拋出IllegalStateException,例如……在《 我如何與母親見(jiàn)面》的第一集中,與Ted和Robin在一起的場(chǎng)景。

    一個(gè)更現(xiàn)實(shí)的Java示例是,如果您使用URLConnection,嘗試做一些假設(shè)您未連接的操作,并得到“ IllegalStateException:已連接”。

    6. NoSuchMethodException –生產(chǎn)環(huán)境的16%

    這樣的方法,很混亂 。 在此數(shù)據(jù)緊縮中,有16%的生產(chǎn)環(huán)境在其前10名中具有NoSuchMethodException。

    由于我們大多數(shù)人在喝醉的時(shí)候不會(huì)寫代碼,至少在白天沒(méi)有這么做,這并不一定意味著我們會(huì)以為自己看到的東西不那么瘋狂。 這樣一來(lái),編譯器就可以在過(guò)程的較早階段捕獲這種方式。

    當(dāng)您嘗試使用不存在的方法時(shí),會(huì)引發(fā)此異常,當(dāng)您使用反射并從某個(gè)變量獲取方法名稱,或者針對(duì)某個(gè)類的版本進(jìn)行構(gòu)建并使用在生產(chǎn)中使用另一種(感謝@braxuss )。

    7. ClassCastException – 15%的生產(chǎn)環(huán)境

    當(dāng)我們?cè)噲D將一個(gè)類強(qiáng)制轉(zhuǎn)換為另一個(gè)非實(shí)例的類時(shí),就會(huì)發(fā)生ClassCastException。 15%的生產(chǎn)環(huán)境將其排在前10位,這非常麻煩。

    規(guī)則是,您不能將對(duì)象強(qiáng)制轉(zhuǎn)換為不繼承對(duì)象的其他類。 大自然曾經(jīng)做過(guò)一次,當(dāng)時(shí)沒(méi)人在看,這就是我們得到…… Java鼠鹿的方式 。 是的,那是一個(gè)真實(shí)的生物。

    8.例外–生產(chǎn)環(huán)境的15%

    在#8中,所有例外項(xiàng)的母親Exception, DUN DUN DUUUUN (祖母可投擲 )。

    Java從來(lái)不會(huì)拋出簡(jiǎn)單的異常,因此這是RuntimeException之類的另一種情況,它必須是……您或第三方代碼顯式地拋出它,原因是:

  • 您需要一個(gè)異常,并且懶得指定它的實(shí)際含義。
  • 或者…更具體地說(shuō),由于某種原因,您需要引發(fā)一個(gè)檢查異常
  • 9. ParseException – 13%的生產(chǎn)環(huán)境

    解析錯(cuò)誤再次發(fā)出! 每當(dāng)我們傳遞字符串以將其解析為其他內(nèi)容,并且未按照應(yīng)有的格式對(duì)其進(jìn)行格式化時(shí),就會(huì)被ParseException擊中。 笨蛋

    在這篇文章中測(cè)試的13%的生產(chǎn)環(huán)境中,前十名中都包含此異常,這比您想象的要普遍得多。

    解決的方法是……再次檢查自己。

    10. InvocationTargetException – 13%的生產(chǎn)環(huán)境

    Java Reflection領(lǐng)域拋出的另一個(gè)異常是InvocationTargetException。 實(shí)際上,這是一個(gè)包裝,如果在調(diào)用的方法中出現(xiàn)問(wèn)題,則將該異常包裝到InvocationTargetException中。

    要獲取原始異常,您必須使用getTargetException方法。

    我們看到,在這篇文章中測(cè)試的13%的生產(chǎn)環(huán)境將其列入前十大例外列表中。 這里的第二種異常類型與Java的反射功能直接相關(guān)。

    最后的想法

    Java異常的世界確實(shí)非常豐富多彩,令人驚訝的是,前10個(gè)異常對(duì)我們的日志有多大影響。 所有記錄的錯(cuò)誤中有97%來(lái)自10個(gè)唯一異常。

    嘗試Takipi并找出您自己的生產(chǎn)環(huán)境中最常見(jiàn)的10個(gè)例外,這僅需幾分鐘即可開(kāi)始,而且您還將獲得修復(fù)它們所需的所有數(shù)據(jù)。 源,堆棧,狀態(tài)。

    翻譯自: https://www.javacodegeeks.com/2016/06/top-10-exception-types-production-java-applications-based-1b-events.html

    java中什么時(shí)候應(yīng)用異常

    總結(jié)

    以上是生活随笔為你收集整理的java中什么时候应用异常_生产Java应用程序中的十大异常类型-基于1B事件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。