首頁  >  文章  >  Java  >  在Java語言中,throw和throws有什麼區別

在Java語言中,throw和throws有什麼區別

王林
王林轉載
2020-07-21 16:52:405186瀏覽

在Java語言中,throw和throws有什麼區別

區別分析:

(推薦教學:java入門教學

throws:用來宣告一個方法可能會產生的所有異常,不做任何處理而是將異常往上傳,誰調用就拋給誰。

  • 用在方法宣告後面,跟的是異常類別名稱

  • 可以跟多個例外類別名,用逗號隔開

  • 表示拋出異常,由該方法的呼叫者來處理

  • #throws表示出現異常的一種可能性,並不一定會發生這些異常

throw:則是用來拋出一個特定的例外類型。

  •   用在方法體內,跟的是例外物件名稱

  • #  只能拋出一個例外物件名稱

  •   表示拋出異常,由方法體內的語句處理

  •   throw表示拋出了異常,執行throw一定拋出了某種異常  

#下面我們來分別介紹一下:

throws在方法後邊宣告異常,其實就是自己不想對異常做出任何的處理,告訴別人自己可能出現的異常,交給別人處理。

程式碼範例:

package com.xinkaipu.Exception;
class Math{
    public int div(int i,int j) throws Exception{
        int t=i/j;
        return t;
    }
}
public class ThrowsDemo {
    public static void main(String args[]) throws Exception{
        Math m=new Math();
   }
}

(影片教學推薦:java影片教學

throw:就是自己處理一個異常,要嘛是自己捕捉異常try...catch程式碼區塊,要嘛是拋出一個例外(throws 異常)。

程式碼實作:

package com.xinkaipu.Exception;
 
public class TestThrow
{
    public static void main(String[] args) 
    {
        try
        {
            //调用带throws声明的方法,必须显式捕获该异常
            //否则,必须在main方法中再次声明抛出
            throwChecked(-3);            
        }
        catch (Exception e)
        {
            System.out.println(e.getMessage());
        }
        //调用抛出Runtime异常的方法既可以显式捕获该异常,
        //也可不理会该异常
        throwRuntime(3);
    }
    public static void throwChecked(int a)throws Exception
    {
        if (a > 0)
        {
            //自行抛出Exception异常
            //该代码必须处于try块里,或处于带throws声明的方法中
            throw new Exception("a的值大于0,不符合要求");
        }
    }
    public static void throwRuntime(int a)
    {
        if (a > 0)
        {
            //自行抛出RuntimeException异常,既可以显式捕获该异常
            //也可完全不理会该异常,把该异常交给该方法调用者处理
            throw new RuntimeException("a的值大于0,不符合要求");
        }
    }
}

以上是在Java語言中,throw和throws有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除