全部產品
Search
文件中心

:錯誤處理

更新時間:Jul 06, 2024

本文介紹C#運行環境發生錯誤資訊時,Function Compute如何處理 。

函數拋出異常

如果您的函數在執行過程中拋出異常,Function Compute會捕獲並返回異常資訊。

範例程式碼如下。

using System;
using System.IO;
using System.Threading.Tasks;
using Aliyun.Serverless.Core;
using Microsoft.Extensions.Logging;

namespace Example
{
    public class Hello
    {
        public async Task<Stream> StreamHandler(Stream input, IFcContext context)
        {
            throw new Exception("oops");
        }

        static void Main(string[] args){}
    }
}
調用函數時收到的響應如下所示。
{
    "errorMessage": "oops",
    "errorType": "System.Exception",
    "stackTrace": [...]
}

發生異常時,函數調用相應的HTTP Header中會包含X-Fc-Error-TypeUnhandledInvocationError。關於Function Compute錯誤類型的更多資訊,請參見錯誤類型

函數主動退出

通過主動退出運行中的函數擷取錯誤資訊時,無法擷取退出時的報錯資訊和堆棧資訊。不推薦使用該方法。

範例程式碼如下。

using System;
using System.IO;
using System.Threading.Tasks;
using Aliyun.Serverless.Core;
using Microsoft.Extensions.Logging;

namespace Example
{
    public class Hello
    {
        public async Task<Stream> StreamHandler(Stream input, IFcContext context)
        {
            System.Environment.Exit(1);
        }

        static void Main(string[] args){}
    }
}
調用函數時收到的響應如下所示。
{
    "errorMessage": "Process exited unexpectedly before completing request (duration: 45ms, maxMemoryUsage: 49MB)"
}