Java错误处理

Max*_*ich 2 java error-handling design-patterns

我确信你们都知道Java强制执行一个非常严格的错误处理模式,任何异常必须通过try catch块或通过使用throws关键字声明一个方法来处理.(我可能会添加我真的喜欢它完成的方式)

话说回来; 我正在努力的是决定在各种方法中处理错误的正确方法是什么.来自C#/ VB.NET背景我以前总是严格遵守在堆栈最底层处理错误(除了最具体的情况之外的所有情况),但我不相信这是Java中最好的方法.

任何人都可以就此提供任何意见吗?什么是最佳做法?如何决定是否应该在方法之外抛出异常或在内部处理它(显然有些情况很明显,但分配不是)?

Bre*_*ail 10

在每个方法的基础上,我问自己:

  1. 此方法是否有足够的信息来正确处理此异常?如果是,请处理它.除此以外...
  2. 调用者是否有足够的信息来正确处理此异常?如果是,请重新抛出.除此以外...
  3. 调用者是否需要专门处理此组件的操作失败?如果是,则重新抛出嵌套在组件异常子类中.除此以外...
  4. Rethrow不受限制.