Tüm Ürünler
Search
Belge Merkezi

Function Compute:Hata İşleme

Son Güncelleme:Oct 08, 2026

Function Compute içindeki bir C# işlevi bir özel durum fırlattığında veya beklenmedik şekilde sonlandığında, platform elde edebildiği bilgileri yakalar ve yapılandırılmış hata ayrıntılarını döndürür. Bu davranışı anlamak, hataları zarif bir şekilde yöneten ve hata ayıklanabilir kalan işleyiciler yazmanıza yardımcı olur.

Bir İşlev Tarafından Fırlatılan Hatalar

İşlev çalıştırması sırasında bir hata oluştuğunda, Function Compute özel durumu yakalar ve hata ayrıntılarını yanıt gövdesinde döndürür.

Aşağıdaki örnek, işlenmeyen bir özel durum fırlatır:

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

Bu işlevi çağırdığınızda, yanıt gövdesi şunları içerir:

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

Yanıt ayrıca X-Fc-Error-Type: UnhandledInvocationError HTTP üst bilgisini de içerir. Function Compute hata türlerinin tam listesi için bkz. Temeller.

İşlevin İstemli Olarak Sonlandırılması

Bir işlev işleyicisi içinde System.Environment.Exit(1) çağrısı yapmak, Function Compute'in hata ayrıntılarını yakalamasına fırsat vermeden işlemi sonlandırır. Yanıt yalnızca genel bir mesaj içerir; hata türü ve yığın izlemesi bulunmaz:

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

İşlev işleyicilerinde System.Environment.Exit() kullanımından kaçının. Kapatma sinyallerini işlemek veya sonlandırmadan önce kaynakları temizlemek gerekiyorsa, bunun yerine yapılandırılmış özel durum işlemeyi kullanın.