Rumah >pembangunan bahagian belakang >C++ >Perlukah Pengecualian Diabaikan dalam Pendekatan 'Api dan Lupakan'?

Perlukah Pengecualian Diabaikan dalam Pendekatan 'Api dan Lupakan'?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-28 04:25:15963semak imbas

Should Exceptions Be Ignored in a

Fire and Forget: Pertimbangan untuk Pengendalian Pengecualian

Persoalan yang dibangkitkan di sini berkisar tentang pengendalian pengecualian yang sesuai apabila melaksanakan "fire and forget "pendekatan. Cadangan awal menggunakan kaedah sambungan yang hanya menelan pengecualian menimbulkan kebimbangan kerana ia mungkin mengaburkan kemungkinan ralat.

Walau bagaimanapun, jika niatnya benar-benar untuk mengabaikan sebarang pengecualian yang berlaku dalam tugasan, maka kaedah sambungan tak segerak mungkin bukan penyelesaian yang optimum. Menunggu tugasan akan mengalahkan prinsip "api dan lupakan" dengan memperkenalkan pergantungan pada penyiapannya.

Dalam senario ini, kaedah sambungan segerak, seperti yang dicadangkan pada mulanya, adalah lebih sesuai. Walau bagaimanapun, untuk memastikan pengecualian yang dijangkakan tetapi tidak dapat diperhatikan dikendalikan dengan baik, versi kaedah yang lebih terperinci diperlukan.

Sebagai contoh, kaedah berikut mengambil parameter yang mentakrifkan senarai jenis pengecualian yang boleh diterima dan tidak boleh diabaikan:

public static void Forget(this Task task, params Type[] acceptableExceptions)
{
  try
  {
    task.Wait();
  }
  catch (Exception ex)
  {
    // TODO: consider whether derived types are also acceptable.
    if (!acceptableExceptions.Contains(ex.GetType()))
      throw;
  }
}

Pendekatan ini membenarkan pengendalian selektif bagi pengecualian, memastikan bahawa hanya ralat tidak dijangka yang disebarkan.

Adalah penting untuk ambil perhatian bahawa menggunakan kaedah ini tidak benar-benar menjadikan tugasan itu "membakar dan melupakan" dalam erti kata menjadi bebas sepenuhnya daripada penyelesaiannya. Walau bagaimanapun, ia menyediakan cara untuk mengabaikan pengecualian khusus yang merupakan sebahagian daripada gelagat tugas yang diharapkan.

Atas ialah kandungan terperinci Perlukah Pengecualian Diabaikan dalam Pendekatan 'Api dan Lupakan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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