區別分析:
(推薦教學: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中文網其他相關文章!