Penanganan pengecualian di C ++ terbatas untuk mencoba / melempar / menangkap. Tidak seperti Object Pascal, Java, C # dan Python, bahkan dalam C ++ 11, finally
konstruksinya belum diimplementasikan.
Saya telah melihat banyak sekali literatur C ++ yang membahas "pengecualian kode aman". Lippman menulis bahwa pengecualian kode aman adalah topik yang penting namun canggih, sulit, di luar cakupan Primer-nya - yang tampaknya menyiratkan bahwa kode aman tidak mendasar bagi C ++. Herb Sutter menyediakan 10 bab untuk topik ini dalam C ++ Luar Biasa!
Namun bagi saya tampaknya banyak masalah yang dihadapi ketika mencoba untuk menulis "pengecualian kode aman" dapat diselesaikan dengan baik jika finally
konstruksinya diimplementasikan, yang memungkinkan programmer untuk memastikan bahwa bahkan jika ada pengecualian, program dapat dipulihkan. ke keadaan aman, stabil, bebas kebocoran, dekat dengan titik alokasi sumber daya dan kode berpotensi bermasalah. Sebagai programmer Delphi dan C # yang sangat berpengalaman saya menggunakan try .. akhirnya memblokir kode saya secara ekstensif, seperti halnya kebanyakan programmer dalam bahasa ini.
Mempertimbangkan semua 'lonceng dan peluit' yang diimplementasikan dalam C ++ 11, saya terkejut menemukan bahwa 'akhirnya' masih belum ada.
Jadi, mengapa finally
konstruksinya tidak pernah diimplementasikan dalam C ++? Ini benar-benar bukan konsep yang sangat sulit atau lanjutan untuk dipahami dan berjalan jauh ke arah membantu programmer untuk menulis 'pengecualian kode aman'.
finally
dalam C ++, dan teknik apa untuk penanganan pengecualian yang digunakan sebagai gantinya?" valid dan sesuai topik untuk situs ini. Jawaban yang ada mencakup ini dengan baik, saya pikir. Mengubahnya menjadi diskusi tentang "Apakah alasan desainer C ++ untuk tidak termasuk finally
berharga?" dan "Harus finally
ditambahkan ke C ++?" dan melanjutkan diskusi lintas komentar pada pertanyaan dan setiap jawaban tidak cocok dengan model situs tanya jawab ini.