throws:在声名方法时声明该方法存在异常。
throw:在方法内部抛出异常。
1.位置不同: throws在方法声明名用于声明该方法存在的异常,throw在方法内部用于抛出异常。
2.类型不同: throws后边跟的是异常类型,throw后边的异常对象
3.作用不同: throws的作用是告知方法的调用者该方法存在某种异常类型需要处理,
throw的作用在用于抛出某种具体的异常对象。
经常throws和throw结合使用。
例:
public class TestThrows {
public static int divide() throws ArithmeticException{
Scanner input = new Scanner(System.in);
System.out.println("请输出被除数:");
int num1 = input.nextInt();
System.out.println("请输出除数:");
int num2 = input.nextInt();
int num3 =0;
try{
num3 =num1/num2;
}catch(ArithmeticException e){
throw new ArithmeticException();//抛出异常
}
return num3;
}
public static void main(String[] args) {
try{
int num3 = divide();
}catch(ArithmeticException e){
System.err.println("除数不能为零!");
}
}
}