Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Berkesan Mengendalikan Pengecualian dalam Tugasan C#?

Bagaimanakah Saya Berkesan Mengendalikan Pengecualian dalam Tugasan C#?

DDD
Lepaskan: 2024-12-29 01:53:14
asal
483 orang telah melayarinya

How Do I Effectively Handle Exceptions in C# Tasks?

Pengendalian Pengecualian dalam Tugas

Menangkap pengecualian yang dibangkitkan dalam System.Threading.Tasks.Task adalah penting untuk memastikan aplikasi anda berfungsi dengan lancar. Berikut ialah perbincangan tentang pendekatan terbaik untuk mengendalikan pengecualian dalam Tasks, berdasarkan versi C# pilihan anda.

C# 5.0 dan Ke Atas

Dengan pengenalan async dan menunggu kata kunci, pengendalian pengecualian dalam Tasks menjadi ketara lebih mudah. Anda boleh menggunakan blok cuba-tangkap dalam kaedah async untuk menangkap pengecualian seperti berikut:

try
{
    var task = Task.Factory.StartNew<StateObject>(() => { /* action */ });
    await task;
}
catch (Exception e)
{
    // Perform cleanup here.
}
Salin selepas log masuk

Ingat untuk menandakan kaedah pengekapan dengan kata kunci async untuk mendayakan penggunaan tunggu.

C# 4.0 dan Di Bawah

Untuk versi C# yang lebih awal, anda boleh mengendalikan pengecualian menggunakan kelebihan ContinueWith yang menerima nilai TaskContinuationOptions:

var task = Task.Factory.StartNew<StateObject>(() => { /* action */ });

task.ContinueWith(t => { /* error handling */ }, context,
    TaskContinuationOptions.OnlyOnFaulted);
Salin selepas log masuk

TaskContinuationOptions.OnlyOnFaulted menyatakan bahawa kesinambungan hanya perlu dilaksanakan apabila tugas anteseden membuang pengecualian.

Anda juga boleh mengendalikan kes bukan luar biasa dengan berbilang panggilan ke ContinueWith :

task.ContinueWith(t => { /* error handling */ }, context, 
    TaskContinuationOptions.OnlyOnFaulted);

task.ContinueWith(t => { /* on success */ }, context,
    TaskContinuationOptions.OnlyOnRanToCompletion);

task.Start();
Salin selepas log masuk

Kaedah ini menawarkan pendekatan yang berbeza untuk pengendalian pengecualian dalam Tugasan, memberikan fleksibiliti dan penyesuaian berdasarkan versi C# anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Berkesan Mengendalikan Pengecualian dalam Tugasan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan