मैं उपयोगकर्ता से स्टैक ट्रेस के अनावश्यक हिस्सों को छिपाने के लिए AssertionError
दोनों को संभालना चाहता हूं और एक संदेश प्रिंट करने के लिए कि त्रुटि क्यों हुई और उपयोगकर्ता को इसके बारे में क्या करना चाहिए।पायथन में AssertionError को कैसे संभालें और यह पता लगाएं कि यह किस पंक्ति या कथन पर हुआ?
क्या ब्लॉक के भीतर विफल होने पर कोई लाइन या कथन पाने का कोई तरीका है? क्योंकि यह जानकारी दोहराता
assert 7 == 7, "7 == 7"
:
try:
assert True
assert 7 == 7
assert 1 == 2
# many more statements like this
except AssertionError:
print 'Houston, we have a problem.'
print
print 'An error occurred on line ???? in statement ???'
exit(1)
मैं नहीं चाहता कि हर ज़ोर बयान में जोड़ने के लिए है।
दो मुद्दे। सबसे पहले, अगर आपको यह पहचानने में समस्या हो रही है कि आपके 'try..except' में अपवाद कहां हो रहा है, तो यह एक संकेत है कि आपका' try..except' ब्लॉक बहुत बड़ा है। दूसरा, 'assert' द्वारा पकड़ा जाने वाला मतलब ऐसी चीज नहीं है जिसे उपयोगकर्ता कभी देखना चाहिए। यदि वे 'AssertionError' देखते हैं, तो उनके लिए प्रोग्रामर से संपर्क करने और "डब्ल्यूटीएफ ?!" कहने का उचित तरीका है। –
@ जॉन वाई, आप उलझन में लग रहे हैं। आप कह रहे हैं कि उपयोगकर्ता द्वारा AssertionError को नहीं देखा जाना चाहिए, और उसके बाद उपयोगकर्ता को एक को देखने पर क्या करना चाहिए। यह दोनों नहीं हो सकता! – devtk
बीटीडब्ल्यू: आवेषण आपके कोड की संरचना के बारे में होना चाहिए, यानी, अगर आपके सॉफ़्टवेयर में कोई बग है तो एक जोर केवल तभी विफल होना चाहिए। उन्हें उपयोगकर्ता इनपुट की जांच करने के लिए उपयोग नहीं किया जाना चाहिए। आप इस एप्लिकेशन के लिए एक अलग अपवाद का उपयोग करने पर विचार कर सकते हैं। –