メニュー
AWS Lambda
開発者ガイド

例外 (Java)

Lambda 関数が例外をスローする場合、AWS Lambda はエラーを認識して JSON に例外情報をシリアル化し、それを返します。エラーメッセージの例を次に示します。

Copy
{ "errorMessage": "Name John Doe is invalid. Exception occurred...", "errorType": "java.lang.Exception", "stackTrace": [ "example.Hello.handler(Hello.java:9)", "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)", "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)", "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)", "java.lang.reflect.Method.invoke(Method.java:497)" ] }

スタックの stackTrace JSON 配列が要素をトレースするときに、スタックトレースが返されることに注意してください。

エラー情報を取得する方法は、関数の呼び出し時に指定した呼び出しタイプによって異なります。

  • RequestResponse 呼び出し型 (同期実行) : この場合、エラーメッセージを取得します。

    たとえば、Lambda コンソールを使用して Lambda 関数を呼び出す場合、RequestResponse が常に呼び出しタイプであり、次の図に示すように、コンソールには AWS Lambda で返されるエラー情報が [Execution result] セクションに表示されます。

  • Event 呼び出し型 (非同期実行) : この場合、AWS Lambda は何も返しません。代わりに、エラー情報が CloudWatch Logs および CloudWatch メトリクスに記録されます。

イベントソースに応じて、AWS Lambda はエラーになった Lambda 関数を返す場合があります。たとえば、Amazon Kinesis が Lambda 関数のイベントソースである場合、AWS Lambda は、Lambda 関数が成功するか、ストリームのレコードの有効期限が切れるまで、エラーになった関数を再試行します。