Java异常转换器实用程序

时间:2014-10-10 01:50:29

标签: java google-app-engine exception

我有一个典型的RESTful Web服务,有两层。资源层和服务层。使用现代对象关系映射库,DAO层似乎已经过时了。

我正在使用Google Cloud Endpoints,这不会令人惊讶地以Java Exceptions的形式返回HTTP错误。我有一组专用的服务层可以抛出异常,例如对象关系映射库中的Object Not Found Exception,以及其他内部异常。可以说,每个内部异常都有一个HTTP Exception对应物。

为了让资源安全地调用服务方法,该调用将包含在一系列try catch中。

try {
    resourceObject = CorrespondingService.method(...);

} catch (InternalExceptionOne internalExceptionOne) {
    throw new CorrespondingWebExcpetionOne(internalExceptionOne.getMessage());

} catch (InternalExceptionTwo internalExceptionTwo) {
    throw new CorrespondingWebExcpetionTwo(internalExceptionTwo.getMessage());

} catch (InternalExceptionThree internalExceptionThree) {
    throw new CorrespondingWebExcpetionThree(internalExceptionThree.getMessage());
}

由于每次从资源层调用服务方法都必须包含在同一系列的try catch语句中,这会产生大量重复的代码。

我正在寻找创建一个可以充当WebExcpetionTranslator的实用工具,但我必须传递一个方法才能在try catch下运行。不知道如何传递方法和参数,然后如何随后调用所传递的方法。

这看起来有点草率?那里有什么东西可以用注释做到这一点?

如何将方法和任意参数传递给实用程序方法,然后使用参数调用传递的方法?

注释怎么样?您是否可以制作自定义注释来处理不同的异常?

P.S。我的技术堆栈是GAE,Objectify和Google Cloud Endpoints。

0 个答案:

没有答案