मैं है निम्नलिखित कोड: मैं खुश नहीं हूँअजगर की कोशिश को छोड़कर के साथ की यदि किसी और
try:
if a_method_that_may_raise_an_exception():
process_pk()
else:
method_to_be_executed_in_case_of_exception_or_pk_is_false()
except:
method_to_be_executed_in_case_of_exception_or_pk_is_false()
कि विधि method_to_be_executed_in_case_of_exception_or_pk_is_false()
प्रकट होता है दो बार, अर्थात्:
try:
pk = a_method_that_may_raise_an_exception()
except:
method_to_be_executed_in_case_of_exception_or_pk_is_false()
else:
if pk:
process_pk()
else:
method_to_be_executed_in_case_of_exception_or_pk_is_false()
इस रूप में लिखा जा सकता है दोनों के अलावा और कोशिश करें ... को छोड़कर।
क्या ऐसा करने का कोई बेहतर तरीका है?
व्यक्तिगत तौर पर मैं दो स्थानों से एक ही समारोह बुला की तुलना में एक नंगे 'except' होने के बारे में अधिक चिंतित होना चाहते हैं। आपको केवल उन अपवादों को पकड़ने के लिए इसे फिर से लिखना चाहिए जिन्हें आप फेंकने की उम्मीद करते हैं। – Duncan
नोट करें कि आपका दूसरा उदाहरण _not_ पहले के बराबर है, क्योंकि 'method_to_be_executed_in_case_of_exception_or_pk_is_false' स्वयं अपवाद फेंक सकता है, जिससे इसे दो बार निष्पादित किया जा सकता है! – Eric