本文介紹Java運行環(huán)境的錯誤處理,包括錯誤類型和異常信息。

錯誤類型

  • 您的函數(shù)如果在執(zhí)行過程中拋出異常,函數(shù)計算會捕獲并返回異常信息。

    示例代碼如下:

    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");
        }
    } 
    調(diào)用函數(shù)時收到的響應(yīng)如下所示。
    {
      "errorMessage" : "oops",
      "errorType" : "java.io.IOException",
      "errorCause" : "oops",
      "stackTrace" : [ "example.HelloFC.handleRequest(HelloFC.java:15)" ]
    }
  • 如果您的函數(shù)在運行過程中主動退出,系統(tǒng)會返回一個通用的錯誤信息。

    示例代碼如下:

    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);
        }
    }
    調(diào)用函數(shù)時收到的響應(yīng)如下所示。
    {
      errorMessage: 'Process exited unexpectedly before completing request (duration: 43ms, maxMemoryUsage: 65MB)'
    }

異常信息

異常信息包含如下三個字段:
字段 類型 說明
errorMessage String 異常信息。
errorType String 異常類型。
stackTrace List 異常堆棧。

更多錯誤類型,請參見錯誤處理