Walaupun terdapat penentu pengecualian dalam C , penggunaannya tertakluk kepada perdebatan. Sesetengah pembangun berhujah menentang kemasukan mereka disebabkan oleh pengehadan dan kelemahan tertentu.
Penguatkuasaan Pengkompil dan Kekurangan Ralat Penyusun
Penentukan pengecualian tidak menyediakan penguatkuasaan pengkompil yang ketat. Walaupun mereka menunjukkan niat fungsi untuk membuang atau tidak, pengkompil tidak menguatkuasakan spesifikasi ini dengan ketat. Kekurangan pengendalian ralat ini boleh mengakibatkan pengecualian masa jalan walaupun penentu pengecualian melarangnya.
Penamatan Program pada Pelanggaran Pengecualian
Jika fungsi melanggar penentu pengecualiannya, lalai tingkah laku dalam standard selalunya penamatan program. Tindakan drastik ini boleh menjadi tidak diingini, terutamanya dalam aplikasi yang pengendalian ralat yang anggun adalah penting.
Tafsiran Tidak Konsisten dalam Visual Studio
Visual Studio menganggap throw(X) sebagai throw( ...), menjejaskan pematuhan standard. Ketidakkonsistenan ini boleh membawa kepada kekeliruan dan tingkah laku yang tidak dijangka.
Kritikan Melangkaui Isu Teknikal
Selain daripada kebimbangan teknikal:
Kesimpulan
Walaupun keupayaan untuk mengisytiharkan spesifikasi pengecualian, penggunaannya boleh membawa kepada masalah yang berkaitan dengan penguatkuasaan pengkompil, penamatan program dan pengehadan dalam senario tertentu. Oleh itu, konsensus di kalangan banyak pembangun ialah penentu pengecualian tidak boleh digunakan dalam C . Sebaliknya, pematuhan kepada amalan terbaik seperti mengembalikan kod ralat dan menangkap pengecualian dengan sewajarnya memberikan pendekatan yang lebih mantap dan boleh diperluaskan untuk pengendalian ralat.
Atas ialah kandungan terperinci Patutkah Penentu Pengecualian Digunakan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!