Pengendalian Pengecualian untuk Ralat Segmentasi dalam Linux
Di Linux, menghadapi ralat segmentasi biasanya mencetuskan isyarat SIGSEGV. Untuk mengendalikan kerosakan sedemikian, anda boleh mewujudkan pengendali isyarat tersuai. Walau bagaimanapun, anda dinasihatkan untuk menyahpepijat kod anda dengan teliti sebelum menggunakan strategi ini.
Pengendalian Isyarat
Biasanya, apabila berlaku kerosakan segmentasi, program menerima isyarat SIGSEGV. Dengan menyediakan pengendali untuk isyarat ini, anda boleh meminimumkan kesan kerosakan. Pastikan pemulihan daripada situasi itu boleh dilaksanakan.
Pendekatan Berasaskan Pengecualian
Pustaka tertentu, seperti yang dirujuk dalam jawapan, menukar isyarat kesalahan segmentasi kepada pengecualian. Ini membenarkan kod yang menyerupai yang berikut:
try { *(int*) 0 = 0; } catch (std::exception& e) { std::cerr << "Exception caught : " << e.what() << std::endl; }
Perpustakaan menggunakan bahagian belakang khusus platform untuk menyokong berbilang platform. Ia mempunyai sokongan yang wujud untuk seni bina x86 dan x86-64. Bahagian belakang untuk platform lain boleh didapati daripada modul libjava dalam sumber gcc.
Atas ialah kandungan terperinci Bolehkah Kesalahan Segmentasi dalam Linux Dikendalikan Melalui Pengecualian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!