Exceptions हैंडल करना
स्लाइड्स में, हमने resolution के लिए सही context देने पर चर्चा की थी. संदेश रिकॉर्ड करते समय अक्सर एक चीज़ नज़रअंदाज़ हो जाती है — उनके पीछे का विस्तृत कारण. कई बार errors बहुत generic होते हैं जैसे "Bad value" या "Invalid date." लेकिन हम विवरण और संदर्भ जोड़कर इन संदेशों को और उपयोगी बना सकते हैं.
यहाँ हम A1C के साथ काम करेंगे, जो उन लाल रक्त कणिकाओं (red blood cells) का प्रतिशत है जिनकी हीमोग्लोबिन पर शुगर जुड़ी होती है. सामान्यतः फास्टिंग रेंज non-affected मरीजों के लिए 5.7% से नीचे होती है, 5.7% से 6.4% प्रीडायबिटीज़ के लिए, और 6.5% से अधिक आम तौर पर unmanaged डायबिटीज़ का संकेत होता है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
PostgreSQL में Transactions और Error Handling
अभ्यास निर्देश
- जहाँ लागू हो,
DOऔरBEGINस्टेटमेंट भरकर transaction ब्लॉक को पूरा करें. - एक exception जोड़ें जो
'a1c is typically less than 14'कोerrorsटेबल केcontextकॉलम में insert करे. - उपयोग की गई procedural language निर्दिष्ट करके exception को समाप्त करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
-- Add a DO function
___ $$
-- BEGIN a transaction block
___
INSERT INTO patients (a1c, glucose, fasting)
values (20, 89, TRUE);
-- Add an EXCEPTION
____
-- Catch all exception types
WHEN others THEN
INSERT INTO errors (msg, detail, ___) VALUES
(
'failed to insert',
'This a1c value is higher than clinically accepted norms.',
'___'
);
END;
-- Make sure to specify the language
____ language 'plpgsql';
-- Select all the errors recorded
SELECT * FROM errors;