throws:用來聲明一個方法可能産生的所有異常,不做任何處理而是将異常往上傳,誰調用我我就抛給誰。
用在方法聲明後面,跟的是異常類名
可以跟多個異常類名,用逗号隔開
表示抛出異常,由該方法的調用者來處理
throws表示出現異常的一種可能性,并不一定會發生這些異常
throw:則是用來抛出一個具體的異常類型。
用在方法體内,跟的是異常對象名
隻能抛出一個異常對象名
表示抛出異常,由方法體内的語句處理(該方法體trycatch或者throws)
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();
}
}
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,不符合要求");
}
}
}
————————————————
版權聲明:本文為CSDN部落客「kobe-fly」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/weixin_38011265/article/details/79149313