JAVA异常处理的时机的困惑

例如,对一个被使用类方法method1,和使用者method2
1 method1 的参数合法性验证在method1进行还是在method2进行?
2 method1 可能产生exception直接throw给使用者method2还是在method1自身进行处理?
问题补充

zzpxingfu 写道
这有篇文章你看看吧
Java中如何处理异常

其实我问的问题是,怎样分配处理异常的责任...
例如我调用同事写的一个方法,但它居然没有对参数进行判断,没有对异常进行处理,于是团队在考虑怎样解决这个问题。

合法性的话在method1里面验证比较好,因为不可能每个调用它方法都去给它加合法性验证,这样程序冗余。
异常处理的话,如果method1方法中会出异常,method2调用method1的方法,如果希望运行method1程序的时候不因method1方法抛异常而终止,那就在method1里面处理。如果method1把异常向上抛出,那就在method2里面处理异常。像这种情况method1方法里面必须有向上抛异常的,method2里面最好也有异常处理。个人感觉method1里面不影响程序运行的异常就自己处理,影响程序运行的就向上抛,在method2里面处理。

这有篇文章你看看吧
[url=http://www.itsking.com/Java/2010/0525/831.html]Java中如何处理异常[/url]

在下认为应该在method1方法中验证,因为他是被调方法,
你不能要求所有调用者来进行验证吧,这不合逻辑,而且会出现验证代码冗余的问题

其次,他所验证的异常应该抛出,交给method2处理,
这也很好理解,其实你看jdk的设计,里面不都是这样设计的吗

更偏向于用断言来检查合法性