在java的方法中throw定义了一个异常,是不是在该方法首部必须声明抛出异常啊?

解决方案 »

  1.   

    http://topic.csdn.net/u/20101230/10/cdecfd1f-1a04-4108-b110-d96ebcf550f9.html
    高手顺便看看这个问题,我不信没人能解决。
      

  2.   

    不需要的 只要在同一个方法中有catch对应的异常就行了……  
      

  3.   

    如果方法中throw异常那么在方法上应该声明throws异常
      

  4.   


    可以在throw包上try catch块 
    也可以在方法上声明throws
      

  5.   

    5楼正解,如果你是打印或是输出到log里就不要声明
      

  6.   

    不是的。throws用在方法声明的头部,意思是转移异常,让上层try-catch块来处理异常。
    而throw用在方法体中,意思是显示地抛出异常,并在本层进行异常的处理。
      

  7.   

    有两种方法处理这种情况,
      一种是在方法签名中声明抛出异常,让调用者去处理:throws 该异常类型;
      另一种是在throw语句的外面适当位置用try ... catch来处理该异常,在方法内部处理而非抛给调用者。至于选择哪种方式,就很有讲究了。
    一般来讲,你写的这个方法(暂称为m1)是被其他方法(暂称为m2)调用的,
      如果m1中发生异常后,需要让m2知道m1执行过程中发生了异常情况,那么应该在方法签名中声明抛出,并且不要再m1方法内部去处理这个异常(即使处理,之后也要再次抛出);
      如果发生该异常时,不需要m2知道,那么在m1中内部处理就是了。
      做这些考虑时,与是否写入日志是无关的,不论选用哪种方法处理,该写日志还写日志。
      

  8.   

    不一定的。有的方法需要throws异常。可以用Try {}catch{}finally{}捕获
      

  9.   

    异常的处理有两种方式:推卸(throws)、承担(catch)。
      

  10.   

    如果抛出的是RuntimeException,就不需要在方法声明抛出异常。否则,就需要声明,或者catch掉
      

  11.   

    非常感谢大家的回复,但是我的方法里没有try catch也没有在方法声明时throws,我很是不明白为什么程序还能运行
      

  12.   

    如果你这么做,那你在调用这个方法的时候要加上try
      

  13.   

    如果有catch就不要再函数头抛出了吧!如果没有那就需要~~throw只是告诉程序你要抛,具体抛不抛那是你的事了吧~~才疏学浅,仅作参考!