【发布时间】:2019-05-15 01:30:43
【问题描述】:
我正在为我正在使用 Java 开展的一个项目学习 AWS Lambda。要求之一是我们使用自定义响应类型(而不是使用默认的 AWS Lambda 错误处理)返回大多数错误,但我想知道在写入输出流之后是否也可以抛出异常.对我来说似乎很奇怪,但这是我目前所拥有的:
@Override
public void handleRequest(final InputStream inputStream,
final OutputStream outputStream,
final Context context) {
ABCRequest request;
ABCResponse response;
try {
request = this.mapper.readValue(requestStream, ABCRequest.class);
} catch (final IOException e) {
response = createResponse(..."error", etc);
writeResponseToOutput(response, outputStream); //writes the response to the output stream
throw new SomeCustomException("...", e);
}
response = handle(request);
writeResponseToOutput(response, outputStream);
}
我要做的就是从从请求中读取值来捕获任何反序列化问题,并在出现异常时以该错误响应进行响应。否则继续处理请求并获得“正常”响应。但这对我来说似乎有点奇怪/混乱。
关于如何更好地处理这种情况有什么建议吗?
对于调用 Lambda 的调用者,他们是否只得到我们发送的响应输出?或者他们是否也将默认的 Lambda 输出扔到流中(来自异常)? (我们只是希望异常显示在日志中,而不是返回给客户端。)
【问题讨论】:
标签: aws-lambda