मुझे पता है कि अगर मैं एक अपवाद को फिर से उठाना चाहता हूं, तो मैं raise
संबंधित except
ब्लॉक में तर्क के बिना सरल उपयोग करता हूं । लेकिन जैसे नेस्टेड एक्सप्रेशन दिया
try:
something()
except SomeError as e:
try:
plan_B()
except AlsoFailsError:
raise e # I'd like to raise the SomeError as if plan_B()
# didn't raise the AlsoFailsError
SomeError
स्टैक ट्रेस को तोड़े बिना मैं फिर से कैसे उठा सकता हूं ? raise
अकेले इस मामले में और अधिक हाल ही में फिर से उठाना होगा AlsoFailsError
। या मैं इस समस्या से बचने के लिए अपने कोड को कैसे रिफलेक्टर कर सकता हूं?
arg
और मैं कॉल करने की कोशिश करूंगा arg.plan_B()
जो एक योजना बी प्रदान नहीं करने के AttributeError
कारण हो सकता हैarg
plan_B
अपवादों को बढ़ाने की इजाजत है
plan_B
किसी अन्य फ़ंक्शन में डालने की कोशिश की है जोTrue
सफलता पर लौटा है, औरFalse
अपवाद पर? तब बाहरीexcept
ब्लॉक बस हो सकता हैif not try_plan_B(): raise