Todos os produtos
Search
Central de documentação

Function Compute:Tratamento de erros

Última atualização: Jun 29, 2026

Quando uma função C# no Function Compute gera uma exceção ou encerra inesperadamente, a plataforma captura as informações disponíveis e retorna detalhes estruturados do erro. Compreender esse comportamento ajuda a escrever handlers que falham de maneira controlada e permanecem fáceis de depurar.

Erros gerados por uma função

Se ocorrer um erro durante a execução da função, o Function Compute captura a exceção e retorna os detalhes do erro no corpo da resposta.

O exemplo a seguir gera uma exceção não tratada:

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

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

        static void Main(string[] args){}
    }
}

Ao invocar essa função, o corpo da resposta contém:

{
    "errorMessage": "oops",
    "errorType": "System.Exception",
    "stackTrace": [...]
}

A resposta também inclui o cabeçalho HTTP X-Fc-Error-Type: UnhandledInvocationError. Para obter a lista completa de tipos de erro do Function Compute, consulte Conceitos básicos.

Encerramento proativo de uma função

Chamar System.Environment.Exit(1) em um handler de função encerra o processo antes que o Function Compute capture os detalhes do erro. A resposta contém apenas uma mensagem genérica, sem tipo de erro nem stack trace:

{
    "errorMessage": "Process exited unexpectedly before completing request (duration: 45ms, maxMemoryUsage: 49MB)"
}

Evite usar System.Environment.Exit() em handlers de função. Caso precise tratar sinais de desligamento ou limpar recursos antes do encerramento, utilize o tratamento estruturado de exceções.