Java異常的十大問題總結

2020-12-14 Java從零開始

本文總結了有關Java異常的十大常見問題。

1.已檢查與未檢查

簡而言之,必須在方法中顯式捕獲已檢查的異常或在方法的throws子句中聲明該異常。未檢查的異常是由無法解決的問題引起的,例如被零除,空指針等。檢查的異常特別重要,因為您希望使用API的其他開發人員知道如何處理異常。

2.異常管理的最佳實踐

如果可以正確處理異常,則應將其捕獲,否則應將其引發。

3.為什麼在try中定義的變量不能被catch或final使用?

在以下代碼中,在try塊中聲明的字符串s不能在catch子句中使用。該代碼不通過編譯。

原因是您不知道在try塊中的哪個位置會引發異常。很有可能在聲明對象之前引發了異常。對於此特定示例,這是正確的。

4.為什麼Double.parseDouble(null)和Integer.parseInt(null)拋出不同的異常?

他們實際上拋出了不同的異常。這是JDK的問題。它們是由不同的開發人員開發的,因此不值得過多思考。

Integer.parseInt(null); // throws java.lang.NumberFormatException: null

Double.parseDouble(null); // throws java.lang.NullPointerException

5. Java中常用的運行時異常

這裡只是其中一些。

IllegalArgumentException

ArrayIndexOutOfBoundsException

當不滿足條件時,可以在if語句中使用它們,如下所示:

if(obj == null) {

thrownewIllegalArgumentException("obj can not be null");

6.我們可以在同一個catch子句中捕獲多個異常嗎?

答案是肯定的。只要這些異常類可以追溯到類繼承層次結構中的同一超類,就只能使用該超類。

7.構造函數可以在Java中引發異常嗎?

答案是肯定的。構造函數是一種特殊的方法。這是一個代碼示例。

8.在最後一個子句中引發異常

進行以下操作是合法的:

但是為了獲得更好的代碼可讀性,您應該將嵌入式try-catch塊包裝為新方法,然後將方法調用放在finally子句中。

methodThrowException();

9.可以在finally塊中使用返回

是的,它可以。

10.為什麼開發人員會默默使用異常?

發生了許多類似以下的時間代碼段。如果正確處理異常非常重要,為什麼開發人員會繼續這樣做呢?

最後,開發這麼多年我也總結了一套學習Java的資料與面試題,如果你在技術上面想提升自己的話,可以關注我,私信發送領取資料或者在評論區留下自己的聯繫方式,有時間記得幫我點下轉發讓跟多的人看到哦。

相關焦點

  • 處理Java異常的9個最佳實踐
    不過,經過總結歸納,我們得到了一些大多數團隊都會採用的最佳實踐。以下是幫助你入門或改進異常處理的9個最重要的實踐。1.在finally塊中或使用Try-With-Resource語句清理資源在try塊中使用資源的情況經常發生,例如InputStream,而這在之後是需要關閉的。
  • java中的try是什麼?|java的異常處理類型
    1、try-是java異常處理類型中的一個。那麼,異常處理又是啥?2、異常-說的就是編寫程序時出現的錯誤。2.1:java提供異常處理類Throwable2.2:Throwable類分為Error和Exception兩個子類2.3:Error由java本身來處理2.4:我們要捕獲和拋出的異常是Exception這類的異常
  • java如何通過異常信息定位問題原因
    最近在百度知道中回答一些問題時發現,發現很多軟體開發的新手,在遇到拋出的異常信息時就慌了,手足無措,不知道該怎麼處理,開始到處求助。今天就聊聊怎麼通過異常信息來定位問題原因吧。異常信息注意看紅框圈起來的這個異常,已經明確的提示了拋出異常的是TestException.java的第4行。那我們來看看這第四行是什麼吧。
  • java面試中必問的oom問題
    請你說說出常見的OOM問題?這時的你可能是懵的。先來做個調查,你知道幾種常見的OOM呢?歡迎評論區留言。總覽來看一下思維導圖,這些錯誤的異常你有遇到過嗎?常見的OOM1.2. java.lang.OutOfMemoryError: Java heap space溢出原因:深入理解Java虛擬機書中講到java堆溢出,Java堆用於存儲對象實例,只要不斷地創建對象,並且保證GC Roots到對象之間有可達路徑來避免垃圾回收機制清除這些對象,那麼在對象數量到達最大堆的容量限制後就會產生內存溢出異常
  • 如何優雅的設計 Java 異常
    如何選擇異常類型異常的類別正如我們所知道的,java中的異常的超類是java.lang.Throwable(後文省略為Throwable),它有兩個比較重要的子類,java.lang.Exception(後文省略為Exception
  • Java中最正確的異常處理方式
    比如說,你的代碼少了一個分號,那麼運行出來結果是提示是錯誤 java.lang.Error ;如果你用 System.out.println(11/0) ,那麼你是因為你用0做了除數,會拋出 java.lang.ArithmeticException 的異常。
  • JAVA 異常處理小技巧!你get到了嗎?
    1、異常:就是程序運行時出現不正常情況異常由來:問題也是現實生活中一個具體的事物,也可以通過java的類的形式進行描述。並封裝成對象。其實就是java對不正常情況進行描述後的對象體現。對於問題的劃分(兩種):一種是嚴重的問題,一種是非嚴重的問題;對於嚴重的,java通過Error類進行描述。對於Error一般不編寫針對性的代碼對其進行編寫對於非嚴重的,java通過Exception類進行描述。
  • Java基礎面試題簡單總結
    不可能指望程序能處理這樣的情況exception 表示一種設計或實現問題。Int是java的原始數據類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。java編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是並不要求必須聲明拋出未被捕獲的運行時異常。
  • Java基礎之異常處理機制
    引入異常處理機制可以解決的問題有:使用方法的返回值來表示異常情況有局限性,需要無窮列舉所有的異常情況;異常流程代碼和正常流程代碼混合一起,代碼往往很臃腫,也很複雜性;代碼的可讀性和可維護性都不高;針對於上述的問題,Java基於面向對象的思想提出了解決方案:把不同類型的異常情況使用不同的類來表示,不同的異常類有共同的父類;分離異常流程代碼和正確流程代碼;規範了異常處理機制,靈活處理異常,能處理就將其捕獲並處理
  • Java中常用隊列的總結
    Java隊列總結通過前面文章的學習,我們對Java中常用隊列做了介紹。本文,咱們來對隊列做個總結吧。首先,我們介紹了現實生活中的實際場景(排隊買票等),來告訴我們為什麼需要使用隊列。本文主要內容:回顧Java中常用的七個阻塞隊列進行總結及阻塞隊列中四組AP並進行總結。本文來源:本文是由凱哥Java(kaigejava)原創發布。接著,我們介紹了隊列的分類,可以分為兩類,即阻塞隊列和非阻塞隊列。
  • 「007期」JavaSE面試題(七):異常
    ,主要總結了JavaSE中異常類相關面試題,在後續,會沿著第一篇開篇的知識線路一直總結下去,做到日更!一般是指與虛擬機相關的問題,如系統崩潰,虛擬機錯誤,內存空間不足,方法調用棧溢等。 Exception(異常):表示程序可以處理的異常,可以捕獲且可能恢復。遇到這類異常,應該儘可能處理異常,使程序恢復運行,而不應該隨意終止異常。
  • 開發java過程中如何自定義自己需要的異常類
    1、為什麼需要自定義異常類?很簡單,java給我們提供的異常類不夠我們使用。2、那如何定義自己的異常類呢?廢話不多說,開始!添加一個帶異常信息的構造方法}(2)自定義異常類必須要繼承Exception|RuntimeException繼承Exception : 那麼自定義的異常類是一個編譯期異常
  • java.lang.nullpointerexception 怎麼解決及出現原因?-CSDN
    相信做過java開發的都遇到過java.lang.nullpointerexception異常,即是空指針異常。解決方法:定位到報空指針異常的這一行代碼,找到有"." 即有點的地方,任何有"."點的地方,都有可能報空指針異常。
  • Java面試總結之Full GC
    在面試中我們會經常被問到full Gc相關的問題,比如什麼情況下會發生full gc,如何去排查頻繁發生full Gc的問題等。要想輕鬆自如的回答這些問題,我們就必須充分的去理解gc的觸發條件,gc回收的內容,以及gc具體的執行過程。掌握了這3個要點,full gc相關的問題就易如反掌了。一、gc的定義GC,即就是Java垃圾回收機制。
  • 如何處理Java中出現的異常?這九種方式值得一試!
    因此,應該儘可能準確地描述問題,並提供最相關的信息幫助了解異常事件。  請不要誤解我,我並不是讓你寫一大段文字。你應該在一兩句話中為該異常作出解釋,這能幫助你的運維團隊了解問題的嚴重程度,同時也讓你在分析服務異常時更輕鬆。  如果你引發了一個特定的異常,它的類名就可能已經描述了錯誤類型,所以你也不用再提供更多信息了。
  • Java異常出現如何處理
    我們在編寫運行過程中常見的可避免不可避免的異常報錯該怎麼處理?今天就具體告訴大家如何處理Java異常。Java的異常處理本質上時拋出異常和捕獲異常。拋出異常指的是如果程序中出現了異常,沒有辦法將具體的異常列印出來,不做任何處理。
  • 動力節點Java學院2021年Java學習路線圖最新出爐啦
    重點學習:面向對象,集合、IO流、線程、並發、異常及網絡編程等等第二階段:資料庫://www.bjpowernode.com/javavideo/110.htmlJavase進階http://www.bjpowernode.com/javavideo/144.html資料庫MySQL視頻http://www.bjpowernode.com/javavideo/111.htmlJDBC視頻http
  • 「原創」JVM系列03|Java棧—方法是如何調用的?
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫本文是何適 JVM 修仙系列第 3 篇,文末有本系列文章匯總。at test.test1.StackTest.test(StackTest.java:6) at test.test1.StackTest.test(StackTest.java:7) at test.test1.StackTest.test(StackTest.java:7) at test.test1
  • 異常—詳解
    1)異常定義異常是指在程序在執行過程中,JVM的非正常停止,Java中異常本身就是一個類,產生異常意味著創建並拋出了一個異常對象 ,JVM處理異常的方法就是終止程序。2)異常體系Exception:編譯期異常,進行編譯(寫代碼)java程序出現的問題手搓RuntimeException:運行期異常,java程序運行過程中出現的問題JVM
  • JAVA並發編程:並發問題的根源及主要解決方法
    並發問題的根源在哪首先,我們要知道並發要解決的是什麼問題?並發要解決的是單進程情況下硬體資源無法充分利用的問題。而造成這一問題的主要原因是CPU-內存-磁碟三者之間速度差異實在太大。如果將CPU的速度比作火箭的速度,那麼內存的速度就像火車,而最慘的磁碟,基本上就相當於人雙腿走路。