通过Java中的层处理嵌套异常的最佳方法

时间:2016-06-28 17:44:57

标签: java exception exception-handling

我有这样的情景:

particle_indices = slice(None,5)   # first 5 particles
plt.figure()
lines = plt.plot(positions[myslice,particle_indices,0],positions[myslice,particle_indices,1])
plt.xlabel('x')
plt.ylabel('z')
plt.legend(lines,['particle {}'.format(k) for k in range(len(t))])
plt.show()

内部目录包我有目录类,它们代表一些 CRUD CatalogException 异常。

内部验证程序包我有验证类和 ValidationException 异常。

对于整个系统,我有一般的例外,例如 MissingException 等......

嗯....在上面的代码中......:

//package
org.system.business
    |
    +-- catalog
    |
    +-- validators

...这是处理异常的更好方法:

  1. 在目录调用中捕获 ValidationException 并使用 CatalogException 进行换行,并可能抛出 BusinessException
  2. 只传播ValidationException?
  3. 其他一些方案?

2 个答案:

答案 0 :(得分:1)

取决于调用者逻辑上期望的内容。选项1.似乎最好。请尝试使用已检查的异常来处理高级别(业务逻辑)异常。

验证程序通常不会抛出异常。它的工作是验证事物,因此它应该预期错误的值。如果验证失败,则应返回falseResult,但不是例外。

答案 1 :(得分:0)

如果用户面向应用程序,则不应将任何“技术异常”传播到UI。有时,如果不可避免,他们应该看到“业务例外”。