区别一:

throw 是语句抛出一个异样;throws 是办法抛出一个异样;

throw语法:throw <异样对象>

在办法申明中,增加throws子句示意该办法将抛出异样。如果一个办法会有异样,但你并不想解决这个异样,就在办法名前面用throws,这样这个异样就会抛出,谁调用了这个办法谁就要解决这个异样,或者持续抛出.

throws语法:[<修饰符>]<返回值类型><办法名>([<参数列表>])[throws<异样类>]

其中:异样类能够申明多个,用逗号宰割。

区别二:

throw要么和try-catch-finally语句配套应用,要么与throws配套应用。但throws能够独自应用,而后再由解决异样的办法捕捉。

分割一:

try .... catch 就是用catch 捕捉 try 中的异样,并解决;catch是捕捉异样。也就是说某一个操作有可能会抛出什么异样。throw 就是不解决异样,间接抛出异样

调用一个会throws exception的办法(在办法定义的时候能够用throws实现)时,须要把这个办法放在try里,而后用catch破获这个exception,做相应的解决。

throw new exception()是抛出一个exception,由别的method来破获它。

也就是说try....catch是为破获他人的exception用的,而throw是本人抛出exception让他人去破获的。

public void input() throws Exception{ }public void outputException(){   try {       input();   }   catch(Exception e){       System.out.println("Exception");   }} 

简略的说,如果一个办法中用了throws,那么这个办法会向上抛出一个异样,那么在调用这个办法的时候必须把这个调用放在try...catch块里解决这个异样。

对于异样有两种解决办法

1、要么申明异样,也就是在办法名前面加上throws exceptionname,..., 办法自身只是抛出异样,由函数调用者来捕捉异样。 若产生异样,异样会沿着调用栈下移,始终找到与之匹配的解决办法,若达到调用栈底仍未找到,程序终止。

2、要么捕捉异样。通过try catch办法,catch子句中搁置解决异样的语句。

分割二:

对于会感觉会有异样抛出的程序块,用try{}包住,而后用catch来抓住这个异样,在catch中对异样做解决, 在try中如果有异样的话,程序会转到catch而不会中断,通常这两个是配合应用的,如果你不想因为程序有错,而抛出一大堆异样的话,你就把该程序try起来,try和catch只能获取程序运行时引发的异样,而throw语句能够引发明确的异样,程序到了throw语句这后就立刻进行,不会执行前面的程序,

大家兴许在编程的过程中,会意识到这里出错,但不晓得会抛出什么异样,也是一件头疼的事,现将这部分总结如下:

算术异样类:ArithmeticExecption
空指针异样类:NullPointerException
类型强制转换异样:ClassCastException
数组负下标异样:NegativeArrayException
数组下标越界异样:ArrayIndexOutOfBoundsException
违反平安准则异样:SecturityException
文件已完结异样:EOFException
文件未找到异样:FileNotFoundException
字符串转换为数字异样:NumberFormatException
操作数据库异样:SQLException
输入输出异样:IOException
办法未找到异样:NoSuchMethodException