2011-02-25 8 views
6

शट डाउन (एक यूपीएस द्वारा शुरू) पर मेरा एप्लिकेशन क्रैश हो जाता है और एक संदेशबॉक्स प्रकट होता है।विंडोज़ में, "अपवाद अज्ञात सॉफ़्टवेयर अपवाद (0x40000015) अनुप्रयोग में हुआ" मतलब STATUS_FATAL_APP_EXIT?

संदेशबॉक्स में पाठ "अपवाद अज्ञात सॉफ़्टवेयर अपवाद (0x40000015) अनुप्रयोग में हुआ"।

मैंने ntstatus.h ब्राउज़ किया और STATUS_FATAL_APP_EXIT पाया? यदि यह सही था, तो संदेश बॉक्स "अज्ञात सॉफ़्टवेयर अपवाद" क्यों कहता है?

उत्तर

13

हां, 0x40000015 का मतलब STATUS_FATAL_APP_EXIT है। आपका ऐप शट डाउन के दौरान एक अनचाहे रनटाइम अपवाद का कारण बनता है। कुछ रनटाइम अपवाद वास्तव में संभाले जाते हैं यदि आप उन्हें स्वयं संभाल नहीं पाते हैं, और इनमें से कुछ डिफ़ॉल्ट हैंडलर abort() पर कॉल करते हैं। डिफ़ॉल्ट, abort कॉल द्वारा:

_call_reportfault(_CRT_DEBUGGER_ABORT, STATUS_FATAL_APP_EXIT, EXCEPTION_NONCONTINUABLE); 

abort एक सामान्य समाप्ति है - यह पता नहीं है क्या विशिष्ट अपवाद के लिए प्रेरित किया है, के नाम से जाना इसलिए सामान्य 'अज्ञात सॉफ्टवेयर अपवाद' संदेश।

निरस्त करने का एक मार्ग _purecall अपवाद के माध्यम से है - एक अनुपूरक शुद्ध वर्चुअल कॉल को कॉल करना।

विजुअल स्टूडियो \ VC \ crt \ src निर्देशिका में purevirt.c और abort.c से Gleaned।


एमएसडीएन में documentation on overriding the default pure call exception handler है।

+1

शॉन ई लिखा है::

यहाँ कुछ संबंधित सवाल कर रहे हैं "कुछ क्रम अपवाद वास्तव में नियंत्रित किया जाता है यदि आप उन्हें अपने आप को संभाल नहीं है" । क्या आप कृपया इस विषय का संदर्भ दे सकते हैं? MSDN? धन्यवाद। –

संबंधित मुद्दे