1. 程式人生 > >Java--throws與throw關鍵字

Java--throws與throw關鍵字

throws與throw關鍵字
一. throws關鍵字
在定義一個方法時可以使用throws關鍵字宣告,使用throws宣告的方法表示此方法不處理異常,而是交給方法的呼叫處進行處理,throws的用法:

public 返回值型別 方法名稱(引數列表,,,)throws 異常類{}

【使用throws關鍵字】

class Math
{
    public int div (int i,int j)throws Exception {
        int temp=i/j;
        return temp;
    }
}

因為除法操作可能會出現異常,也有可能沒有異常,所以在上面的程式碼的div()方法中使用了throws關鍵字,表示不管是否會產生異常,在呼叫方法處都必須進行異常處理,呼叫程式碼如下
【異常處理】

class Math
{
public int div (int i,int j)throws Exception {
int temp=i/j;
return temp;
}
}
public calss ThrowsDemo01 {
public static void main(String args[]){
Math m=new Math();
try
{
System.out.println(“除法操作”+m.div(4,2));
}
catch (Exception e)
{
e.printStackTrace();//列印異常
}
}
}

執行結果:
除法操作2
在上面的程式碼中,不管是否有問題都要使用try,,catch塊進行異常處理,既然throws是在此方法中定義的那麼在主方法中也是可以使用throws關鍵字,但是主方法是程式的起點,所以此時主方法再向上拋異常,則只能拋給JVM進行處理。
【在主方法中使用throws關鍵字】

class Math
{
    public int dic(int i,int j){
        int temp=i/j;
        return temp;
    }
}
public class ThrowsDemo02
{
    //不使用trycatch進行處理
    public static void main(String args[])throws Exception{
        Math a=new Math();
        System.out.println("除法操作:"+a.div(10,5));
    }
}

執行結果:

除法操作:2

上面程式碼在主方法中使用了throws關鍵字,所以在程式主方法中就可以不使用try….catch進行異常的捕獲和處理。
注意:不要再主方法中使用throws關鍵字,因為主方法是程式的入口,發生異常後交由JVM處理,將導致程式的中斷
二. throw關鍵字
與throws關鍵字不同的是,可以直接使用throw關鍵字人為的丟擲一個異常,丟擲時直接丟擲異常類的例項化物件即可。
【丟擲異常】

public class ThrowDemo01
{
    public static void main(String args[]){
        try
        {
            throw new Exception("自己丟擲的異常");//例項化異常物件
        }
        catch (Exception e)//捕獲異常
        {
            System.out.println(e);
        }
    }
}

執行結果:

java.lang.Exception: 自己丟擲的異常

以上程式碼並不難理解,因為異常產生時肯定會由系統產生一個異常類的例項化物件,只是此時異常類的例項化物件是手工產生的。
throw不會單獨使用:
throw關鍵字的使用完全符合異常的處理機制,但是,一般來說使用者都在避免異常的產生,所以不會手工的丟擲一個新的異常類例項,而往往會丟擲程式中產生的異常類例項。
三. throw與throws關鍵字的用法
學了那麼多異常處理方式,throws、throw、try,,catch等。這些到底該怎麼使用那?在實際的應用中都是組合搭配的使用。
【綜合使用】

class Math
{
    public int div(int i,int j)throws Exception{
        System.out.println("-----計算開始-----");
        int temp=0;
        try
        {
            temp=i/j;

        }
        catch (Exception e)
        {
            throw e;
        }finally{
            System.out.println("-----計算結束-----");
        }

        return temp;
    }
}
public class ThrowDemo02
{
    public static void main(String args[]){
        Math m=new Math();
        try
        {
            System.out.println("除法操作:"+m.div(10,2));
        }
        catch (Exception e)
        {
            System.out.println("異常產生:"+e);
        }
    }
}

運算結果:

-----計算開始-----
-----計算結束-----
除法操作:5

從程式中可以發現,通過合理的搭配程式完成了需要的功能,不管在Math類中的div()方法是否會產生異常,都會執行“計算結束”的語句,如果有異常產生則將異常交給呼叫處處理。

相關推薦

Java--throwsthrow關鍵字

throws與throw關鍵字 一. throws關鍵字 在定義一個方法時可以使用throws關鍵字宣告,使用throws宣告的方法表示此方法不處理異常,而是交給方法的呼叫處進行處理,throws的用法: public 返回值型別 方法名稱(引數列表

簡述JDBC原理 + 在JAVA中異常是什麽 + throws throw 區別 + 簡單解釋以下JAVA中的多態

鏈接 con 原理 指向 引用 作用 ger 同名方法 nec JDBC原理:   加:加載驅動   鏈:創建連接   預:創建預編譯   執:執行SQL語句(查詢需要處理結果級)   釋:關閉鏈接;   DBC中定義了一些接口:   1、驅動管理:   DriverMan

java 異常處理機制,throwsthrow,try-catch-finally

java 異常處理機制 1.Java異常處理 2.try-catch-finally的程式流程圖 3.關鍵解讀 4.demo 5.不捕獲異常時的情況 在編寫程式時,經常要在可能出現錯誤的地方

拋出異常throwsthrow

語句 方法 -s 內部 spa 聲明 單獨使用 多個 bsp throws throw throws與throw的區別 throw用於在程序中拋出異常,throws用於在聲明在該方法中拋出異常。 使用位置不同:throw位於方法體內部,可以作為單獨語句;throws必須跟

throwsthrow

1.throws關鍵字–>作用於方法上 在進行方法定義時,如果要明確告訴呼叫者方法可能產生哪些異常,可以使用throws方法進行宣告,表示將異常拋回給呼叫方,並且當方法出現問題後,可以不進行處理。 public class Test { public static void

java throwsthrow的區別

丟擲異常丟擲異常有三種形式,一是throw,一個throws,還有一種系統自動拋異常。下面它們之間的異同。 系統自動拋異常 當程式語句出現一些邏輯錯誤、主義錯誤或型別轉換錯誤時,系統會自動丟擲異常。如: public static void main(String[] ar

java異常——五個關鍵字(try、catch、finally、throwthrows

五個 code print 聲明 col span pan all 組合 一、try、catch、finally常用組合 try{ xxx }catch(xxxException e){ e.printStackTrace(); } try{

Java語言如何進行異常處理,關鍵字throwsthrow、try、catch、finally分別代表什麼意義?在try塊中可以丟擲異常嗎?

try塊表示程式正常的業務執行程式碼。如果程式在執行try塊的程式碼時出現了“非預期”情況,JVM將會生成一個異常物件,這個異常物件將會被後面相應的catch塊捕獲。 catch塊表示一個異常捕獲塊。

Java語言如何進行異常處理,關鍵字throwsthrow、try、catch、finally分別如何使用?

需要學習資料的+微信公眾號 學習資源後臺找我 本人比較忙 我看到了會在後臺幫你,謝謝關注啦 Java通過面向物件的方法進行異常處理,把各種不同的異常進行分類,並提供了良好的介面。 在Jav

Java異常機制try、catch、finally、throwthrows五個關鍵字

 Java異常機制主要依賴於try、catch、finally、throw、throws五個關鍵字。          1.try:它裡面放置可能引發異常的程式碼          2.catch:後面對應異常型別和一個程式碼塊,用於表明該catch塊用於處理這種型別

[Js-Java SE]Java中的Native關鍵字JNI

pan 基礎 好文 native ava 文章 aid java se targe 一篇精細基礎到令人發指的好文章mark 鏈接: https://pan.baidu.com/s/1-9X8YFBdmFyaWDJoSZyBtQ 密碼: 90sf[Js-Java SE]Jav

初學總結--------Java修飾符修飾關鍵字(且叫修飾關鍵字

避免 它的 抽象類 ati 其他 new ont bsp 方法名 Java中有類,有成員變量,有成員方法,有局部變量。他們分別能用什麽來修飾? 目前學習到的類,有普通類和內部類。 一.修飾普通類:   1.public 每個文件中只有一個類能被public修飾,表示可以被

Java內存模型volatile關鍵字淺析

同步 size zed 內存 ces reads 需要 vol private volatile關鍵字在java並發編程中是經常被用到的,大多數朋友知道它的作用:被volatile修飾的共享變量對各個線程可見,volatile保證變量在各線程中的一致

Java內部類final關鍵字詳解

修飾 tor oca 修飾符 key eight 標識 cal ner 閱讀目錄 一、內部類的幾種創建方法: 二、神馬是內部類? 三、最後來說說final關鍵字: 回到頂部 一、內部類的幾種創建方法: 1、成員內部類 1 2 3 4 5 6 cl

java中拋出throw關鍵字是怎麽用的? 舉例?

gin 物理 let 決定 download 崩潰 一個 string 怎麽 5.拋出throw關鍵字 (視頻下載) (全部書籍) 馬克-to-win:我們先說5/0的原理,當程序運行到5/0的時候,java系統JVM會在後臺new出一個除0異常實例,之後把這個實例傳入

Javathrowsthrow的區別講解

當然,你需要明白異常在Java中式以一個物件來看待。 並且所有系統定義的編譯和執行異常都可以由系統自動丟擲,稱為標準異常,但是一般情況下Java 強烈地要求應用程式進行完整的異常處理,給使用者友好的提示,或者修正後使程式繼續執行。 直接進入正題哈: 1.使用者程式自定義的異常和應用程式特定的異常,必

thinking in java (四) ----- staticthis關鍵字

static  static代表什麼 static表示“全域性”或者“靜態”的意思,用來修飾成員變數或者方法,也可以修飾程式碼塊。被static修飾的成員會在類載入的時候進行初始化與空間分配,被設定為靜態後,成員會被存放在靜態儲存空間,全域性共享一個值。因此訪問被st

super this 關鍵字(Java)

super 與 this 關鍵字 super關鍵字:我們可以通過super關鍵字來實現對父類成員的訪問,用來引用當前物件的父類。 this關鍵字:指向自己的引用。 例項 class Animal { void eat() { System.out.println("a

java:面向物件(abstract不能那些關鍵字同時使用注意事項)

/* * abstract不能和那些關鍵字共存? * * abstract和static * * 被abstract修飾的方法沒有方法體 * * 被static修飾的方法可以用類名.呼叫,但

Java(二)異常處理4.throw關鍵字

public class ThrowDemo { public static void main(String[] args) { try { int ret=divide(10,0); System.out.println(ret);