throws只是告诉方法的调用者该方法可能抛出的异常,真正抛出什么异常取决于你的程序,并且调用该方的方法,必须捕获抛出的异常,或该异常的父类,或继续抛出.
NullPointerException是运行期异常,所以你通过catch(RuntimeException e)就可以捕获到,如果你抛出IOException,那么程序就会编译不通过.

解决方案 »

  1.   

    函数后面的 throw 是指该方法可能抛出的异常,但是方法内部不捕捉该异常,如果产生异常,必须放在try块中进行,如果方法不捕捉异常,就要抛出异常,异常总要有捕捉代码,否则编译不通过。
      

  2.   

    nod,一句话:带有throws语句的函数必须放在try中,并且该异常必须被catch
      

  3.   

    但是throws NullPointerException  语句可以省略,效果一样。
      

  4.   

    当然可以省略了,NullPointerException是RuntimeException ,可以不写的
      

  5.   

    RuntimeException 在默认情况下会自动得到处理,这是java的规则其它的Exception 就不行了,一定要catch
      

  6.   

    不好意思,写错了,应该为其它的Exception 就不行了,一定要throws
      

  7.   

    继承的时候有影响,子类中的throw1方法只能throw NullPointerException或者不throw
      

  8.   

    空指针异常是运行期异常,没有必要必须抛出的。一般来说,是在JAVA中有一些方法必须要抛出异常,如果要用到这些方法,才需要用throws抛出,然后在程序中用try,catch捕获的