user1932634 user1932634 - 1 year ago 116
Java Question

AWS Lambda - callback("some error type") equivalent in Java 8

How do I make a lambda function report a failure in Java 8?

I see this is possible in Node.js.

Using the Callback Parameter

The Node.js runtime v4.3 supports the optional callback parameter. You
can use it to explicitly return information back to the caller. The
general syntax is:

callback(Error error, Object result);


  • error – is an optional parameter that you can use to provide results
    of the failed Lambda function execution. When a Lambda function >succeeds, you can pass null as the first parameter.

  • result – is an optional parameter that you can use to provide the result of a successful function execution. The result provided must be
    JSON.stringify compatible. If an error is provided, this parameter is


Using the callback parameter is optional. If you don't use the
optional callback parameter, the behavior is same as if you called the
callback() without any parameters. You can specify the callback in
your code to return information to the caller.

If you don't use callback in your code, AWS Lambda will call it
implicitly and the return value is null.

When the callback is called (explicitly or implicitly), AWS Lambda
continues the Lambda function invocation until the Node.js event loop
is empty.

The following are example callbacks:

callback(); // Indicates success but no information returned to

the caller. callback(null); // Indicates success but no information

returned to the caller. callback(null, "success"); // Indicates

success with information returned to the caller. callback(error);

// Indicates error with error information returned to the caller.

AWS Lambda treats any non-null value for the error parameter as a
handled exception.

Answer Source

Just throw an exception and do not catch it anywhere. Any uncatched exception causes Lambda failure. You can see more information about how to report failures in AWS Lambda with Java:

public TestResponse handleRequest(TestRequest request, Context context) throws RuntimeException {
   throw new RuntimeException("Error");

Note the throws declaration which allows to throw an unhandled exception to out of the method.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download