मैं इस तरह अजगर कुछ में कुछ कोड लिख रहा हूँ:पायथन में, क्या मैं किसी फ़ंक्शन को कीबोर्ड इंटरप्ट और सिस्टम एक्सीट को पकड़ने से रोक सकता हूं?
import sys
try:
for x in large_list:
function_that_catches_KeyboardInterrupt(x)
except KeyboardInterrupt:
print "Canceled!"
sys.exit(1)
जब मैं पाश में दखल देने की कोशिश, मैं मूल रूप से नीचे नियंत्रण + सी काफी देर तक समारोह के हर मंगलाचरण रद्द करने के लिए पकड़ करने के लिए की जरूरत है large-list
के सभी तत्वों के लिए, और केवल तब ही मेरा प्रोग्राम बाहर निकलता है।
क्या कोई तरीका है कि मैं फ़ंक्शन को कीबोर्ड इंटरप्ट को पकड़ने से रोक सकता हूं ताकि मैं इसे स्वयं पकड़ सकूं? एकमात्र तरीका जिसे मैं सोच सकता हूं, फ़ंक्शन को कॉल करने के लिए केवल एक अलग थ्रेड बनाकर थ्रेडिंग का दुरुपयोग करना होगा, लेकिन यह अत्यधिक लगता है।
संपादित करें: मैं अपमानजनक कोड (जो मैं आसानी से नहीं बदल सकते हैं) की जाँच की, और यह वास्तव में एक नंगे except:
का उपयोग करता है, तो भी sys.exit(1)
एक SystemExit
अपवाद के रूप में पकड़ा है। मैं except:
ब्लॉक से बच सकता हूं और अपना प्रोग्राम छोड़ सकता हूं?
ऐसा लगता है कि मेरे लिए अत्यधिक नहीं है ... क्योंकि हर दूसरे समाधान के साथ मैं आ सकता हूं जिसमें कुछ प्रकार का काला शामिल होगा जादू ... – GaretJax
ध्यान दें कि आपको प्रत्येक आमंत्रण के लिए धागे का उपयोग करने की आवश्यकता नहीं है, केवल एक ही पर्याप्त है। ;-) – GaretJax