लंबी कहानी छोटी है, मेरे पास एक महत्वपूर्ण पायथन एप्लिकेशन है जो कि अन्य चीजों के साथ, लिनक्स पर "लॉसेटअप", "माउंट" इत्यादि से बाहर निकलता है। अनिवार्य रूप से उपभोग करने वाले सिस्टम संसाधन जिन्हें पूरा होने पर जारी किया जाना चाहिए।क्या एप्लिकेशन-व्यापी अपवाद हैंडलर समझ में आता है?
यदि मेरा एप्लिकेशन क्रैश हो जाता है, तो मैं यह सुनिश्चित करना चाहता हूं कि इन सिस्टम संसाधनों को ठीक से रिलीज़ किया गया हो।
क्या यह कुछ ऐसा करने का अर्थ है?
def main():
# TODO: main application entry point
pass
def cleanup():
# TODO: release system resources here
pass
if __name__ == "__main__":
try:
main()
except:
cleanup()
raise
यह कुछ ऐसा है आम तौर पर किया जाता है है? क्या कोई बेहतर तरीका है? शायद एक सिंगलटन कक्षा में विनाशक?
शीर्ष-स्तर अपवाद हैंडलर जीयूआई अनुप्रयोगों में उपयोगी हैं। इवेंट हैंडलरों में फेंकने वाले अपवाद अपवाद कंसोल में दिखाई देंगे, लेकिन सामान्य रूप से प्रोग्राम को क्रैश नहीं करेंगे (उदा। पीजीजीटीके और पीईक्यूटी में), यह अनजान हो सकता है। यदि आप हैंडलर में एक त्रुटि संवाद दिखाते हैं, तो आपको वह समस्या नहीं है। –
मैं यह भी सुझाव दूंगा कि आप उन्हें कंसोल ऐप्स में डाल दें जो बैच प्रोसेसिंग करते हैं। मैंने उन्हें एक ईमेल भेज दिया है ताकि हमें किसी भी समस्या का अधिसूचित किया जा सके, लेकिन कम से कम यह इसे लॉग कर सकता है। –