throws E1,E2,E3只是告诉程序这个方法可能会抛出这个异常,有方法调用者去处理。
throw则是明确了这个地方要抛出这个异常。
关于异常的举例: try catch finally
public class ExceptionTest {
public static String output="2";
public static void foo(int i){
try{
if(i==2)
throw new Exception();
output+="3";
}catch(Exception e){
output+="4";
return;
}finally{
output+="5";
}
output+="6";
}
public static void main(String[] args) {
foo(2);
System.out.println(output);//245
foo(1);
System.out.println(output);//245356
}
}