throw与throws抛出异常的区别
throws抛出异常出现在 public void function() throws Exception{};
throw抛出异常是在方法内 比如:
public int function(int a){ if(a==0){ throw new Exception("传入参数为0") } return 0; }
比如就是当这个函数传入的参数不能为0时,一旦传入这个值为0的参数就会引发这个异常,并实现异常处理。
也就是说throws抛出异常,这个异常不一定会出现,只有当程序出现某种错误时,比如除零异常,数组下表越界异常等等,才会引发异常。而throw是当程序运行到这段时,一定会出现异常,并调用异常处理,就像在上面例子中,传入参数为0时就会产生这个异常。在百度上看到有位朋友的回答很确切,throws是“抛弃”,一旦出现异常就将其抛到调用该方法的地方去,让其他人解决这个异常,throw是“产生”,一旦出现异常就处理它。