मेरे पास कुछ कोड है जहां मैं डेटाबेस को लिखने का प्रयास करता हूं, और कुछ मामलों में एक विशिष्टता बाधा के कारण एक (अपेक्षित) अखंडता प्राप्त करता है। मैं त्रुटि पकड़ने की कोशिश कर रहा हूं, लेकिन कुछ रहस्यमय कारणों से मैं नहीं कर सकता। मेरे कोड इस तरह दिखता है (एक पाश, स्पष्टता के लिए सरलीकृत में चल रहे):psycopg2 ईमानदारी क्यों पकड़ा नहीं जा रहा है?
from psycopg2 import IntegrityError
try:
data = {
'one': val1,
'two': val2
}
query=tablename.insert().values(data)
target_engine.execute(query)
except IntegrityError as e:
print "caught"
except Exception as e:
print "uncaught"
print e
break
उत्पादन जब मैं स्क्रिप्ट इस तरह दिखता है चलाएँ:
uncaught
(psycopg2.IntegrityError) duplicate key value violates unique constraint "companies_x_classifications_pkey"
DETAIL: Key (company_id, classification_id)=(37802, 304) already exists.
[SQL: 'INSERT INTO companies_x_classifications (company_id, classification_id) VALUES (%(company_id)s, %(classification_id)s)'] [parameters: {'classification_id': 304, 'company_id': 37802L}]
यह कभी भी प्रिंट "पकड़ा", इसलिए ऐसा नहीं लगता कि मेरे पास एक ईमानदारी है। फिर भी जब मैं त्रुटि मुद्रित करता हूं, यह एक अखंडता त्रुटि है। किसी भी मदद की सराहना की जाएगी!
सफलता के लिए
psycopg2
अपवाद लपेटता! बहुत बहुत धन्यवाद, वह था। – Leo