मैं अपवाद JNA के तहत पुस्तकालयों द्वारा फेंके जाने के साथ काम कर के बारे में एक त्वरित सवाल ...JNA पकड़ने अपवाद
जब मैं अंतर्निहित मूल कोड में एक अपवाद फेंक, JNA एक अवैध स्मृति पहुँच त्रुटि हो जाता है। मुझे लगता है कि ऐसा इसलिए है क्योंकि सी पुस्तकालय इसके ढेर के माध्यम से अपवाद नहीं फेंक सकते हैं (यह वास्तव में सी ++/सीएलआर है लेकिन सी निर्यात है)? तो जावा के अपवाद की रिपोर्ट करने का कोई वास्तविक तरीका नहीं है? या "यह काम करना चाहिए" और मैं बस कुछ अविश्वसनीय रूप से गलत कर रहा हूँ?
DllExport void Initialize(char* dir)
{
throw gcnew System::Exception("Testing");
}
यह अच्छा होगा जावा इन फेंका अपवाद पता लगाने में सक्षम होने के लिए, और मुझे लगता है कि मैं वास्तव में मेरे सारे सी निर्यात में स्मृति सूचक गुजर गौर और अगर उन अशक्त या नहीं कर रहे हैं देखने के लिए जाँच कर सकता है, लेकिन एक चौराहे के रास्ते की तरह लगता है।
तो मैं इसे सी ++/सीएलआर पक्ष पर पकड़ूंगा, और इसे कई पैरामीटर के रूप में जावा में वापस भेज दूंगा? (या सरल त्रुटि रिपोर्टिंग की इच्छा के उदाहरण में, केवल दूसरा पैरामीटर होने पर, "char * err" पर्याप्त होगा)। मैंने सोचा कि मुझे शायद ऐसा करना होगा। – StrangeWill