19 个解决方案
#1
有点不解,等高手
#2
http://topic.csdn.net/u/20101230/10/cdecfd1f-1a04-4108-b110-d96ebcf550f9.html
高手顺便看看这个问题,我不信没人能解决。
高手顺便看看这个问题,我不信没人能解决。
#3
不需要的 只要在同一个方法中有catch对应的异常就行了……
#4
如果方法中throw异常那么在方法上应该声明throws异常
#5
可以在throw包上try catch块
也可以在方法上声明throws
#6
支持5楼。5楼是对的。
#7
5楼正解,如果你是打印或是输出到log里就不要声明
#8
不是的。throws用在方法声明的头部,意思是转移异常,让上层try-catch块来处理异常。
而throw用在方法体中,意思是显示地抛出异常,并在本层进行异常的处理。
而throw用在方法体中,意思是显示地抛出异常,并在本层进行异常的处理。
#9
有两种方法处理这种情况,
一种是在方法签名中声明抛出异常,让调用者去处理:throws 该异常类型;
另一种是在throw语句的外面适当位置用try ... catch来处理该异常,在方法内部处理而非抛给调用者。
至于选择哪种方式,就很有讲究了。
一般来讲,你写的这个方法(暂称为m1)是被其他方法(暂称为m2)调用的,
如果m1中发生异常后,需要让m2知道m1执行过程中发生了异常情况,那么应该在方法签名中声明抛出,并且不要再m1方法内部去处理这个异常(即使处理,之后也要再次抛出);
如果发生该异常时,不需要m2知道,那么在m1中内部处理就是了。
做这些考虑时,与是否写入日志是无关的,不论选用哪种方法处理,该写日志还写日志。
一种是在方法签名中声明抛出异常,让调用者去处理:throws 该异常类型;
另一种是在throw语句的外面适当位置用try ... catch来处理该异常,在方法内部处理而非抛给调用者。
至于选择哪种方式,就很有讲究了。
一般来讲,你写的这个方法(暂称为m1)是被其他方法(暂称为m2)调用的,
如果m1中发生异常后,需要让m2知道m1执行过程中发生了异常情况,那么应该在方法签名中声明抛出,并且不要再m1方法内部去处理这个异常(即使处理,之后也要再次抛出);
如果发生该异常时,不需要m2知道,那么在m1中内部处理就是了。
做这些考虑时,与是否写入日志是无关的,不论选用哪种方法处理,该写日志还写日志。
#10
不一定的。有的方法需要throws异常。可以用Try {}catch{}finally{}捕获
#11
异常的处理有两种方式:推卸(throws)、承担(catch)。
#12
如果抛出的是RuntimeException,就不需要在方法声明抛出异常。否则,就需要声明,或者catch掉
#13
不错 学习了 呵呵
#14
非常感谢大家的回复,但是我的方法里没有try catch也没有在方法声明时throws,我很是不明白为什么程序还能运行
#15
如果你这么做,那你在调用这个方法的时候要加上try
#16
如果有catch就不要再函数头抛出了吧!如果没有那就需要~~
throw只是告诉程序你要抛,具体抛不抛那是你的事了吧~~
才疏学浅,仅作参考!
throw只是告诉程序你要抛,具体抛不抛那是你的事了吧~~
才疏学浅,仅作参考!
#17
在方法后写throws Exception
#18
#19
#20
#1
有点不解,等高手
#2
http://topic.csdn.net/u/20101230/10/cdecfd1f-1a04-4108-b110-d96ebcf550f9.html
高手顺便看看这个问题,我不信没人能解决。
高手顺便看看这个问题,我不信没人能解决。
#3
不需要的 只要在同一个方法中有catch对应的异常就行了……
#4
如果方法中throw异常那么在方法上应该声明throws异常
#5
可以在throw包上try catch块
也可以在方法上声明throws
#6
支持5楼。5楼是对的。
#7
5楼正解,如果你是打印或是输出到log里就不要声明
#8
不是的。throws用在方法声明的头部,意思是转移异常,让上层try-catch块来处理异常。
而throw用在方法体中,意思是显示地抛出异常,并在本层进行异常的处理。
而throw用在方法体中,意思是显示地抛出异常,并在本层进行异常的处理。
#9
有两种方法处理这种情况,
一种是在方法签名中声明抛出异常,让调用者去处理:throws 该异常类型;
另一种是在throw语句的外面适当位置用try ... catch来处理该异常,在方法内部处理而非抛给调用者。
至于选择哪种方式,就很有讲究了。
一般来讲,你写的这个方法(暂称为m1)是被其他方法(暂称为m2)调用的,
如果m1中发生异常后,需要让m2知道m1执行过程中发生了异常情况,那么应该在方法签名中声明抛出,并且不要再m1方法内部去处理这个异常(即使处理,之后也要再次抛出);
如果发生该异常时,不需要m2知道,那么在m1中内部处理就是了。
做这些考虑时,与是否写入日志是无关的,不论选用哪种方法处理,该写日志还写日志。
一种是在方法签名中声明抛出异常,让调用者去处理:throws 该异常类型;
另一种是在throw语句的外面适当位置用try ... catch来处理该异常,在方法内部处理而非抛给调用者。
至于选择哪种方式,就很有讲究了。
一般来讲,你写的这个方法(暂称为m1)是被其他方法(暂称为m2)调用的,
如果m1中发生异常后,需要让m2知道m1执行过程中发生了异常情况,那么应该在方法签名中声明抛出,并且不要再m1方法内部去处理这个异常(即使处理,之后也要再次抛出);
如果发生该异常时,不需要m2知道,那么在m1中内部处理就是了。
做这些考虑时,与是否写入日志是无关的,不论选用哪种方法处理,该写日志还写日志。
#10
不一定的。有的方法需要throws异常。可以用Try {}catch{}finally{}捕获
#11
异常的处理有两种方式:推卸(throws)、承担(catch)。
#12
如果抛出的是RuntimeException,就不需要在方法声明抛出异常。否则,就需要声明,或者catch掉
#13
不错 学习了 呵呵
#14
非常感谢大家的回复,但是我的方法里没有try catch也没有在方法声明时throws,我很是不明白为什么程序还能运行
#15
如果你这么做,那你在调用这个方法的时候要加上try
#16
如果有catch就不要再函数头抛出了吧!如果没有那就需要~~
throw只是告诉程序你要抛,具体抛不抛那是你的事了吧~~
才疏学浅,仅作参考!
throw只是告诉程序你要抛,具体抛不抛那是你的事了吧~~
才疏学浅,仅作参考!
#17
在方法后写throws Exception