dlopen في المكتبة مع عضو ثابت يطرح استثناءً في المُنشئ - يؤدي إلى إحباط

StackOverflow https://stackoverflow.com/questions/413473

سؤال

أحاول تحميل مكتبة ديناميكية باستخدام وظيفة dlopen.تحتوي هذه المكتبة على كائن ثابت، والذي يطرح استثناءً في منشئه.لدي كتلة "try-catch(...)" حول مكالمة dlopen، لكنها لا تلتقط الاستثناء، وأرى فقط كلمة "Abort" مطبوعة.

كيف يمكنني التقاط هذا الاستثناء؟

هل كانت مفيدة؟

المحلول

اجابة قصيرة:لا يمكنك

التفكير في الأمر مرة أخرى.
تظل البيانات الأصلية صحيحة، لكن يجب أن تتذكر أيضًا أن dlopen() هي إحدى وظائف مكتبة C.C لا يدعم الاستثناءات.وبالتالي فإن طرح استثناء يعبر من كود C++ إلى كود C (الكائن العام الخاص بك حتى dlopen() ) سيؤدي أيضًا إلى إنهاء التطبيق.

انظر هنا:لماذا لا يتم استدعاء المدمر للاستثناء؟

هذه هي المواقف التي يؤدي فيها طرح الاستثناء إلى إنهاء التطبيق.يتم تغطية حالتك المحددة من خلال:

استثناء يهرب من المنشئ/المدمر للثابت غير المحلي (أي العالمي)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top