(1)throws使用在函数上,throw使用在函数内
(2)throws后面跟的是异常类,可以跟多个,用逗号隔开
throw后面跟的是一场对象。
(3)throw是语句抛出一个异常,throws是方法抛出一个异常
throw语法:throw 异常对象
在方法声明中,添加throws子句表示该方法将抛出异常
throws语法:[<修饰符>]<返回值类型><方法名>([<参数列表>])[throws<异常类>]
例如:public void test()throws Exception(){}
(4)throws可以单独使用,但throw不能
(5)throw要么和try{}catch{}语句配套使用,要么与throws配套使用,但throws可以单独使用,然后再捕获。
例如:我自定义一个异常类
package com.itheima;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) {
Test t=new Test();
int x;
try {//在调用div方法时,必须捕获此异常。
x = t.div(5,-1);
System.out.println(x);//这段代码不是被执行,因为上面抛出自定义异常了
} catch (MyException e) {
e.printStackTrace();
}
}
public int div(int a,int b)throws MyException{
if(b<0){//如果b小于0,则抛出自定义异常
throw new MyException("出现了负数");//抛出对象实例,停止执行后面的代码
}
return a/b;
}
}
class MyException extends Exception{//自定义一个异常类
public MyException(String msg){//创建一个有参的构造函数
super(msg);
}
}
|