gpt4 book ai didi

java - 封装常见的异常处理逻辑

转载 作者:行者123 更新时间:2023-11-30 06:29:26 26 4
gpt4 key购买 nike

我有一系列网络服务方法调用,它们都遵循以下格式。每种方法的唯一区别是 httpRequest.methodName()。任何人都可以想出一种方法来封装通用逻辑吗?另请注意,我的环境是 J2ME。

public Response webserviceCall(Request request) {

HTTPRequest httpRequest = new HTTPRequest(new ConnectionProperties());

String errorMessage = "";
String errorCode = "";

try {
// the only thing different
httpRequest.methodName();
} catch (SDKException e) {
errorMessage = e.getMessage();
errorCode = e.getErrorCode();
}

Error error = new Error(errorMessage,errorCode);

return new Response(error);
}

最佳答案

一种替代方法是将该代码放在一个抽象类中,并将其更改为调用一个抽象方法(例如,将其命名为 process):

abstract class BaseWebService {
public abstract Response process(HTTPRequest request) throws SDKException;

public Response webserviceCall(Request request) {

HTTPRequest httpRequest = new HTTPRequest(new ConnectionProperties());

String errorMessage = "";
String errorCode = "";

try {
process(httpRequest);
} catch (SDKException e) {
errorMessage = e.getMessage();
errorCode = e.getErrorCode();
}

Error error = new Error(errorMessage,errorCode);

return new Response(error);
}
}

然后使您的每个服务都扩展该类并根据需要实现process 方法

class OneService extends BaseWebService {

Response process(HTTPRequest request) throws SDKException{
return request.methodName();
}
}

根据记录,这是 Template Method Pattern

关于java - 封装常见的异常处理逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11580045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com