Tous les produits
Search
Centre de documentation

Function Compute:Gestion des erreurs

Dernière mise à jour :Aug 12, 2026

Lorsqu'une fonction C# dans Function Compute lève une exception ou s'arrête de manière inattendue, la plateforme capture les informations disponibles et renvoie des détails d'erreur structurés. Comprendre ce mécanisme permet d'écrire des handlers qui gèrent les échecs avec élégance et restent faciles à déboguer.

Erreurs levées par une fonction

Si une erreur survient pendant l'exécution d'une fonction, Function Compute capture l'exception et retourne les détails de l'erreur dans le corps de la réponse.

L'exemple suivant lève une exception non gérée :

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){}
    }
}

Lorsque vous appelez cette fonction, le corps de la réponse contient :

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

La réponse inclut également l'en-tête HTTP X-Fc-Error-Type: UnhandledInvocationError. Pour consulter la liste complète des types d'erreurs de Function Compute, reportez-vous à la rubrique Notions de base.

Arrêt volontaire d'une fonction

L'appel à System.Environment.Exit(1) dans un handler de fonction termine le processus avant que Function Compute ne puisse capturer les détails de l'erreur. La réponse ne contient alors qu'un message générique, sans type d'erreur ni trace de pile :

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

Évitez d'utiliser System.Environment.Exit() dans les handlers de fonction. Pour gérer les signaux d'arrêt ou libérer des ressources avant la fin du processus, privilégiez une gestion structurée des exceptions.