楼上的回答很正确,我在面试的时候也遇见过这样的问题,我也是按照楼上的这么回答,结果人家摇了摇头。我问他,我答错了吗,他说没有。他说我想要的结果是这样的:“throws是被动抛出异常,而throw是主动抛出异常”。比如,一个person类有age属性,如果int age =0(没有问题),然后重新赋值的时候要判断一下if(age<0){throw new Exception()}else{……}如果不这么写的话,一个人的age为负值是没有意义的(这就是主动抛出异常),如果直接写……部分的内容,jvm是不会报错的,程序能够正常运行。(throw是人为的抛出异常,throws是被动抛出异常)