このトピックでは、Javaランタイム環境のエラータイプとエラー情報について説明します。
エラータイプ
関数の実行中にエラーが発生した場合、Function Computeはエラーをキャプチャしてエラー情報を返します。
次のサンプルコードに例を示します。
package example; import com.aliyun.fc.runtime.Context; import com.aliyun.fc.runtime.StreamRequestHandler; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class HelloFC implements StreamRequestHandler { @Override public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException { throw new IOException("oops"); } }
関数が呼び出されると、次のレスポンスが返されます。
{ "errorMessage" : "oops", "errorType" : "java.io.IOException", "errorCause" : "oops", "stackTrace" : [ "example.HelloFC.handleRequest(HelloFC.java:15)" ] }
実行中に関数がプロアクティブに終了すると、システムは一般的なエラーメッセージを返します。
次のサンプルコードに例を示します。
package example; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import com.aliyun.fc.runtime.Context; import com.aliyun.fc.runtime.StreamRequestHandler; public class App implements StreamRequestHandler { @Override public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException { System.exit(-1); } }
関数が呼び出されると、次のレスポンスが返されます。
{ errorMessage: 'Process exited unexpectedly before completing request (duration: 43ms, maxMemoryUsage: 65MB)' }
エラー情報
エラー情報に含まれるフィールドを次の表に示します。
項目 | データ型 | 説明 |
errorMessage | String | エラーメッセージを示します。 |
errorType | String | エラータイプ。 |
stackTrace | List | エラースタック。 |
詳細については、「基本」をご参照ください。