Java異常處理:throw與throwS

2021-02-19 程式設計師食堂

首先,先說說異常的分類:

在java中,任何異常都屬於java.lang.Throwable類或其子類,Throwable類又分為Exception類和Error類

    其中Exception類用於用戶所出現的各種異常,它也可用來創建自定義類型的類。

    Error類異常是指java程序運行時與運行是系統本身有關的錯誤,這些異常通常是災難性的,不是程序可以控制的。

      積極異常處理機制主要是使用try...catch.程序先執行try中的語句,當出現異常時,停止當前的執行,轉入到catch中執行語句(一個catch塊只能處理一種異常類)。

        通常會在catch後面跟一個final,無論try和catch中是否發生異常,finally中的語句都會執行,下面詳細講解一下return的用法

public class throwable {

public static int add(int num){

try{

num++;

System.out.println("This is try num:"+num);

return num++;

}catch (Exception e){

e.printStackTrace();

return num;

}finally {

num++;

System.out.println("This is finally num:"+num);

}

}

public static void main(String args[]){

System.out.print("out:"+throwable.add(0));

}

}

輸出結果

This is try num:1

This is finally num:3

out:1

public class throwable {

public static int add(int num){

try{

num++;

System.out.println("This is try num:"+num);

return num++;

}catch (Exception e){

e.printStackTrace();

return num;

}finally {

num++;

System.out.println("This is finally num:"+num);

return num;//加入return

}

}

public static void main(String args[]){

System.out.print("out:"+throwable.add(0));

}

}

輸出結果

This is try num:1

This is finally num:3

out:3

    根據兩個例子,很明顯可以看出try執行return語句之後,並沒有立即返回,而是執行了finally中的語句,當finally中沒有return時,執行完之後直接返回;

當finally中有return時,執行finally中的return,不再執行try中的return.

        消極的處理方式是指用throw和throws來實現。throw會主動拋出一個異常,並終止程序的運行。

        throws用在方法後面,表示聲明一個異常,告訴方法的使用者方法中出現了哪些異常,讓使用者根據自己的情況處理這些異常。

throw是語句拋出一個異常:throw (異常對象)

throws是方法可能拋出異常的聲明;(public void do(int num) throws Exception1...)

        throw語句用在方法體內,表示拋出異常,由方法體內的語句處理。

throws語句用在方法聲明後面,表示再拋出異常,由該方法的調用者來處理。

        throw是具體向外拋異常的動作,所以它是拋出一個異常實例

throws主要是聲明這個方法會拋出這種類型的異常,使它的調用者知道要捕獲這個異常

throws說明你有那個可能,傾向

throw的話,那就是你把那個傾向變成真實的了

原創面經&技術分享&網際網路資訊熱點&模擬面試&內推

Java、大數據、前端、產品、數據結構&算法

相關焦點

  • throw與throws有啥區別,很多java程式設計師都還沒有弄明白!
    在java學習和應用過程中,異常處理是非常重要的一個知識內容。
  • Java異常處理和設計
    對於運行時異常,java編譯器不要求必須進行異常捕獲處理或者拋出聲明,由程式設計師自行決定,即也可以使用try..catch...塊顯示捕獲處理,或者顯示拋出。這是一種處理異常的方式。在Java中還提供了另一種異常處理方式即拋出異常,顧名思義,也就是說一旦發生異常,我把這個異常拋出去,讓調用者去進行處理,自己不進行具體的處理,此時需要用到throw和throws關鍵字。
  • Java 中的異常和處理詳解
    Java中的異常可以是函數中的語句執行時引發的,也可以是程式設計師通過throw 語句手動拋出的,只要在Java程序中產生了異常,就會用一個對應類型的異常對象來封裝異常,JRE就會試圖尋找異常處理程序來處理異常。Throwable類是Java異常類型的頂層父類,一個對象只有是 Throwable 類的(直接或者間接)實例,他才是一個異常對象,才能被異常處理機制識別。
  • Java 異常處理
    /throw 關鍵字:如果一個方法沒有捕獲一個檢查性異常,那麼該方法必須使用 throws 關鍵字來聲明。throws 關鍵字放在方法籤名的尾部。也可以使用 throw 關鍵字拋出一個異常,無論它是新實例化的還是剛捕獲到的。下面方法的聲明拋出一個 RemoteException 異常:import java.io.
  • Java 異常處理的十個建議
    只要實現了java.lang.AutoCloseable接口或者java.io.Closeable接口的對象,都OK。雖然一個正常情況都不會發生的異常,但是如果你捕獲到它,就不要忽略呀,至少打個日誌吧~七、注意異常對你的代碼層次結構的侵染(早發現早處理)反例:public UserInfo queryUserInfoByUserId(Long userid) throw
  • Java異常面試問題
    每當執行java語句時發生任何錯誤,都會創建一個異常對象,然後JRE會嘗試查找異常處理程序來處理異常。如果找到合適的異常處理程序,則將異常對象傳遞給處理程序代碼以處理異常,稱為捕獲異常。如果未找到處理程序,則應用程式將異常拋出到運行時環境,JRE將終止該程序。Java異常處理框架僅用於處理運行時錯誤,編譯時錯誤不由異常處理框架處理。
  • Java進階02 異常處理
    面向對象語言,比如C++, Java, Python往往有更加複雜的異常處理機制。這裡討論Java中的異常處理機制。Java異常處理異常處理Java的異常處理機制很大一部分來自C++。它允許程式設計師跳過暫時無法處理的問題,以繼續後續的開發,或者讓程序根據異常做出更加聰明的處理。 Java使用一些特殊的對象來代表異常狀況,這樣對象稱為異常對象。當異常狀況發生時,Java會根據預先的設定,拋出(throw)代表當前狀況的對象。所謂的拋出是一種特殊的返回方式。該線程會暫停,逐層退出方法調用,直到遇到異常處理器(Exception Handler)。
  • Java中異常處理的9個最佳實踐
    當某些事情出現了錯誤異常就會發生,比如打開一個並不存在的文件、嘗試在一個為null的對象上調用方法等等,都會發生異常。異常是不可預知的,可是一旦它發生了就需要進行異常處理,可謂知錯就改善莫大焉!異常處理是一種錯誤處理機制,如果你不對異常做任何處理,異常將會導致應用程式崩潰。
  • 編程思想之異常處理:C++、Java、JavaScript中的異常處理(Exception)
    異常處理的解決方案C++中的異常處理:C++中的異常處理主要有兩種實現方式:(1).返回錯誤碼,(2).try...catch機制捕獲異常。返回錯誤碼返回錯誤碼是傳統的C語言的處理異常的方式。當throw出的對象類型與e的類型相同時,則捕獲到異常,進行catch代碼塊中的異常處理。4.第二個catch括號中的」...」表示任意類型,可以捕獲任意類型的異常。
  • Jdk 動態代理異常處理分析,UndeclaredThrowableException
    ,且將真實的異常信息隱藏在更深一層的堆棧中。>    public void foo() throws SQLException {        throw new SQLException("I test throw an checked Exception");    }}// 動態代理public class IServiceProxy implements
  • Java 異常處理專題,從入門到精通
    內置異常和Throwable核心方法Java內置異常可查異常(必須要在方法裡面捕獲或者拋出)不可查異常Throwable類核心方法Try Catch異常捕獲異常處理之捕獲語法
  • 最最最全面的Java異常面試及解答
    只有finally塊,執行完成之後,才會回來執行try或者catch塊中的return或者throw語句,如果finally中使用了return或者throw等終止方法的語句,則就不會跳回執行,直接停止。throws – 用在方法籤名中,用於聲明該方法可能拋出的異常。Java異常處理
  • Java 處理 Exception 的 9 個最佳實踐
    譯文:http://www.rowkey.me/blog/2017/09/17/java-exception/在Java中處理異常並不是一個簡單的事情。不僅僅初學者很難理解,即使一些有經驗的開發者也需要花費很多時間來思考如何處理異常,包括需要處理哪些異常,怎樣處理等等。這也是絕大多數開發團隊都會制定一些規則來規範對異常的處理的原因。而團隊之間的這些規範往往是截然不同的。1.
  • Java 處理 Exception 的 9 個最佳實踐!
    在Java中處理異常並不是一個簡單的事情。不僅僅初學者很難理解,即使一些有經驗的開發者也需要花費很多時間來思考如何處理異常,包括需要處理哪些異常,怎樣處理等等。這也是絕大多數開發團隊都會制定一些規則來規範對異常的處理的原因。而團隊之間的這些規範往往是截然不同的。
  • Java 中處理 Exception 的最佳實踐
    在Java中處理異常並不是一個簡單的事情。不僅僅初學者很難理解,即使一些有經驗的開發者也需要花費很多時間來思考如何處理異常,包括需要處理哪些異常,怎樣處理等等。這也是絕大多數開發團隊都會制定一些規則來規範對異常的處理的原因。而團隊之間的這些規範往往是截然不同的。本文給出幾個被很多團隊使用的異常處理最佳實踐。 1.
  • Java處理Exception的9個最佳實踐
    不僅僅初學者很難理解,即使一些有經驗的開發者也需要花費很多時間來思考如何處理異常,包括需要處理哪些異常,怎樣處理等等。這也是絕大多數開發團隊都會制定一些規則來規範對異常的處理的原因。而團隊之間的這些規範往往是截然不同的。本文給出幾個被很多團隊使用的異常處理最佳實踐。1.
  • 2W字詳解Java異常,面試再也不怕被問到!
    在 Java 中,每個異常都是一個對象,它是 Throwable 類或其子類的實例。當一個方法出現異常後便拋出一個異常對象,該對象中包含有異常信息,調用這個對象的方法可以捕獲到這個異常並可以對其進行處理。Java 的異常處理是通過 5 個關鍵詞來實現的:try、catch、throw、throws 和 finally。
  • 面試官:說一說你知道的 Java 中的異常!
    只有finally塊,執行完成之後,才會回來執行try或者catch塊中的return或者throw語句,如果finally中使用了return或者throw等終止方法的語句,則就不會跳回執行,直接停止。throws – 用在方法籤名中,用於聲明該方法可能拋出的異常。
  • 一文讀懂 JAVA 異常處理
    受查異常和非受查異常受查異常會在編譯時被檢測。如果一個方法中的代碼會拋出受查異常,則該方法必須包含異常處理,即 try-catch 代碼塊,或在方法籤名中用 throws 關鍵字聲明該方法可能會拋出的受查異常,否則編譯無法通過。如果一個方法可能拋出多個受查異常類型,就必須在方法的籤名處列出所有的異常類。
  • Java 中 9 個處理 Exception 的最佳實踐
    /如有好文章投稿,請點擊 → 這裡了解詳情在Java中處理異常並不是一個簡單的事情。不僅僅初學者很難理解,即使一些有經驗的開發者也需要花費很多時間來思考如何處理異常,包括需要處理哪些異常,怎樣處理等等。這也是絕大多數開發團隊都會制定一些規則來規範對異常的處理的原因。而團隊之間的這些規範往往是截然不同的。本文給出幾個被很多團隊使用的異常處理最佳實踐。1.