大家好,我有一些关于throw、thows的疑问想向大家请教一下:1.throw、throws的区别?2.什么时候就应该用throw,什么时候就应该用throws?3.为什么有些方法声明了异常,但方法内部却没有处理,但有些声明了异常,方法内部就有处理?

解决方案 »

  1.   

    throw是语句层面的,实在程序内部抛出异常如 throw new NullPointerException;就是在程序运行到这一行时向外界抛出一个空指针异常。
    throws是方法层面的,是修饰方法的异常处理,如public String getName() throws NullPointerException {...},就是说这个方法如果内部产生未经处理的NullPointerException,那么这个方法会向外抛出。
      

  2.   

    throws用在方法体,比如 public void xxx() throws Exception其他地方用throw
      

  3.   

    throws 声明我这个方法将要 抛出去 多少个异常, 你看他用了 复数形式。
    throw  真的抛出了一个异常,                   你看他用了 单数形式。
      

  4.   

    to  sky_boxer(饿鱼骨头) :
    我觉得你的例子有问题 String getName() throws NullPointerException {...}异常说明应该抛出checked Exception,NullPointer属于RuntimeException
    声明和没声明一个样
      

  5.   

    对与第3个问题
    有些在内部处理了
    没有处理只是声明抛出,可以有他的调用者捕获,最后在main里声明抛出的话,有控制台捕获。
    我的拙见,呵呵====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  6.   

    1,throws这个方法将要或者可能要抛出异常,throw抛出一个异常,throws可能是一堆异常,throw一个异常
    2,throw你要抛出一个异常的时候,throws这个方法将要或者可能要抛出异常
    3,我猜可能是JAVA机制的问题