हर जगह try..except
के साथ अपने कोड को प्रदूषित करने के बजाय, आपको sys.excepthook
सेट करके हुक को छोड़कर अपना स्वयं का कार्यान्वयन करना चाहिए। यहां एक उदाहरण दिया गया है:
import sys
import traceback
def install_excepthook():
def my_excepthook(exctype, value, tb):
s = ''.join(traceback.format_exception(exctype, value, tb))
dialog = ErrorReportDialog(None, s)
dialog.exec_()
sys.excepthook = my_excepthook
आपका आवेदन शुरू होने पर install_exception()
पर कॉल करें।
ErrorReportDialog
एक क्यूटी संवाद मैंने बनाया है। traceback.format_exception()
पाइथन के दुभाषिया में उसी तरह से हुक को छोड़कर तर्क को प्रारूपित करेगा।
संपादित करें: मैं इसके साथ थोड़ा गचाचा का उल्लेख करना भूल गया। यह धागे के साथ काम नहीं करता है (ठीक है, कम से कम यह पिछली बार मैंने चेक नहीं किया था)। किसी अन्य थ्रेड में चलने वाले कोड के लिए, आपको इसे try..except
ब्लॉक में लपेटना होगा।
स्रोत
2009-12-28 20:27:30
मैं इस कथन से असहमत हूं कि टिंकर "सरल कमांड लाइन ऐप्स के लिए बहुत अधिक रैपर" है। टिंकर एक पूर्ण रूप से जीयूआई लाइब्रेरी है जो सभी प्रकार के उद्देश्यों के लिए उपयुक्त है। और वास्तव में, स्क्रीनशॉट में सभी सुविधाओं को लागू करने के लिए टिकिनटर का भी उपयोग किया जा सकता है। –
मैं असहमत नहीं हूं, लेकिन अगर कोई एक पूर्ण, रखरखाव जीयूआई (क्रैश रिपोर्टिंग और धागे के साथ) बनाना था, कम से कम प्रयास के साथ, कोई ऊपर सूचीबद्ध अन्य टूलकिटों में से एक का उपयोग करेगा। उनके अस्तित्व का कारण यह है कि टिंकर इस आवश्यकता को पर्याप्त रूप से पूरा नहीं करता है। – torger