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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

最常见的Java异常及其对Java开发人员的评价

發布時間:2023/12/3 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最常见的Java异常及其对Java开发人员的评价 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我知道我說在完成視頻之前我不會張貼帖子,但這一直困擾著我。 至于視頻的更新,我有些懶散,有些忙碌,但是我已經準備好記錄第一集,這是我第一次有機會,而且我不需要太多的編輯。 無論如何,還是今天的話題。

Takipi博客最近發布了兩篇有關前10個 最常拋出的異常 (已記錄)的文章。 這10個例外占這些日志中97%的例外。 我想按從最常見到最不重要的順序列出這些例外情況,并簡要說明這些例外情況。

  • 空指針異常
  • NumberFormatException
  • IllegalArgumentException
  • RuntimeException
  • IllegalStateException
  • NoSuchMethodException
  • ClassCastException
  • 例外
  • ParseException
  • InvocationTargetException
  • 空指針異常

    NPE排在此列表中,甚至排在榜首,這對大多數人來說并不奇怪,但事實并非如此! 這些異常是可以避免的。 有兩種相對著名的方法可以避免Java中已經存在的空對象模式和Optional類型, 并且如果您切換到具有空安全性的語言(例如與Java完全兼容的Kotlin),則幾乎不需要考慮避免使用NPE。

    我們都應該通過采取良好的預防措施(除非正常的空值檢查是從第三者那里獲得的,除非正常情況下,我不認為正常的空值檢查是最佳方法),才能努力防止這些異常。有助于預防NPE的語言。

    NumberFormatException和ParseException

    ParseException在列表中排名第9,但它與NumberFormatException緊密相關,我發現確實令人不安的是, 這兩個都位于前10名中,其中之一是#2。 兩者都與將String數據解析為其他內容有關,我不禁認為,由于這些異常的普遍性,開發人員并未充分利用類型系統來發揮自己的優勢, “字符串型”編程。

    現在,這些異常中的很大一部分可能是由于用戶輸入錯誤或某種序列化問題引起的,但那里可能也存在太多“字符串類型”的對象。 由錯誤的用戶輸入引起的錯誤可能應該在通過解析器運行之前進行檢查,而這恰恰是初始輸入驗證的一部分。

    我的意思可能是我想說的更苛刻。 在許多情況下,這些都是很難避免的例外,將它們排在前十名也就不足為奇了。

    NoSuchMethodException和InvocationTargetException

    這兩種情況都是在反思中發生的,我可能不會多說,但是我非常不喜歡反思。 幾乎總是有另一種方式。 那樣的方法可能并不容易,但是我相信它總是總會更好,因為事情變得更加明確和易于理解,并且您會從錯誤中獲得更多的編譯器幫助。

    肯定有一些避免反射的異常(例如,使用反射運行所有測試的JUnit),但是我敢肯定,這些異常中的大多數都是無緣無故拋出的,使用常規編程技術可以避免問題。

    要查看關于避免像反射這樣的“魔術”的真正好話,請查看“ 8行代碼” (跟隨起來很困難,因為視頻只看著揚聲器,而且他在幻燈片中回跳得還不錯,所以甚至很難跟著幻燈片一起跟隨)。 這也是我選擇Java Spark而不是Spring的原因之一。

    IllegalArgumentException

    我實際上不介意出現這種情況。 這意味著很多人正在檢查他們的輸入,并確保他們不會搞砸一切。 有一些方法可以減少計數,例如使用真正強壯的打字,例如Object Calisthenics的建議(規則3和4),但這是一組故意過分熱心的規則,可以幫助您學習,并且遵循它只是將IllegalArgumentException進一步推到一個位置。

    RuntimeException和異常

    真? 真?! 那只是無濟于事,特別是Exception。 我可以理解將異常轉換為運行時異常,但僅使用RuntimeException并不是最佳方法。 為此創建一個自定義異常,即使它與WrappedException一樣通用。

    IllegalStateException

    同樣,良好的OO設計可以解決此問題,但是有時很難提出這些設計。 我會輕松一點的。

    ClassCastException

    我不知道這件事的感覺。 我擔心其中有多少可能是由于反射或在泛型可用時使用原始類型引起的。 在這兩種情況下,都需要停止。 但是我也知道,有很多地方真的很難避免,因此我不會對此進行豎琴演奏。

    結論…

    該例外列表中令我最擔心的是Java代碼中普遍存在的NPE和反射問題的數量。 其他許多人都與弱的OO設計有關,但是我知道那里有很多新手或經驗不足的開發人員,或者他們的問題使他們很難和/或不值得進行更深入的開發。 我不得不放開那些案件。

    請讀者,如果您從中學習到任何東西,請了解一下,將來可以通過學習如何解決null問題(通過使用null安全語言或使用Optional或Null Object模式)來避免很多麻煩。嘗試看看您可以從代碼中獲取多少反射和注釋。

    翻譯自: https://www.javacodegeeks.com/2016/06/common-java-exceptions-says-java-devs.html

    總結

    以上是生活随笔為你收集整理的最常见的Java异常及其对Java开发人员的评价的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。