ট্র্যাক
/
Go
Go
/
অনুশীলনী
/
এরর হ্যান্ডলিং
এরর হ্যান্ডলিং

এরর হ্যান্ডলিং

মধ্যম

নির্দেশনা

বিভিন্ন ধরনের এরর হ্যান্ডলিং ও রিসোর্স ম্যানেজমেন্ট বাস্তবায়ন করুন।

প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ বিষয় হলো এরর ঘটে গেলেও কীভাবে সেগুলো হ্যান্ডল করতে হয় এবং রিসোর্স বন্ধ করতে হয়।

এই অনুশীলনীতে আপনাকে বিভিন্ন ধরনের এরর হ্যান্ডল করতে হবে। এরর হ্যান্ডলিং বেশ প্রোগ্রামিং ভাষা নির্ভর হওয়ায় ঠিক কী করতে হবে তা জানতে আপনাকে আপনার ট্র্যাকের টেস্টগুলো দেখতে হবে।

ইমপ্লিমেন্টেশন

আপনি যদি Go-এর এরর বা প্যানিক নিয়ে নতুন হন, তাহলে প্রথমে প্রসঙ্গটি বুঝে নেওয়ার জন্য এই বিষয়গুলো নিয়ে ডকুমেন্টেশনটি পড়ে দেখার পরামর্শ দিই।

এই অনুশীলনীতে আপনাকে একটি ফাংশন Use(opener ResourceOpener, input string) error ডিফাইন করতে হবে, যা একটি রিসোর্স খোলে, ফলের রিসোর্সটির উপর Frob(input) কল করে এবং তারপর সেই রিসোর্সটি বন্ধ করে (সব ক্ষেত্রেই)। আপনার ফাংশনটির উচিত এরর ও প্যানিক যথাযথভাবে হ্যান্ডেল করা।

ResourceOpener opener একটি ফাংশন হবে, যা রিসোর্সটি "খোলার" চেষ্টায় আপনি সরাসরি opener() কল করতে পারবেন। এটি Go-এর প্রচলিত রীতিতে একটি Resource ও একটি এরর মান রিটার্ন করে:

Resource, ResourceOpener, FrobError এবং TransientError-এর সংজ্ঞার জন্য common.go ফাইলটি দেখুন। আপনার সমাধানটি common.go ও error_handling_test.go ফাইল দুটির মতো একই প্যাকেজে রাখতে হবে: "erratum"। এতে ওই টাইপগুলো আপনার সমাধানে ব্যবহার করা যাবে।

আপনার Use ফাংশনে কয়েকটি জায়গা থাকবে যেখানে এরর ঘটতে পারে:

  • প্রথম প্যারামিটার হিসেবে Use-এ পাঠানো ResourceOpener ফাংশনটি কল করলে সেটি TransientError টাইপের এরর দিয়ে ফেল করতে পারে; সেক্ষেত্রে রিসোর্সটি খোলার চেষ্টা চালিয়ে যান। এটি অন্য কোনো ধরনের এরর হলে, সেটি আপনার Use ফাংশন থেকে রিটার্ন করুন।

  • ResourceOpener ফাংশন থেকে পাওয়া Resource-এর উপর Frob ফাংশনটি কল করলে সেটি FrobError (বা অন্য কোনো ধরনের এরর) দিয়ে প্যানিক করতে পারে। সেটি সত্যিই FrobError হলে আপনাকে রিসোর্সটির Defrob ফাংশনটি কল করতে হবে, প্যানিক হওয়া FrobError-এর .defrobTag ভ্যারিয়েবলটি Defrob ফাংশনের ইনপুট হিসেবে ব্যবহার করে। যেভাবেই হোক, Use তখন এররটি রিটার্ন করা উচিত।

  • আরও মনে রাখবেন: Resource সফলভাবে খোলা হলে, যাই ঘটুক না কেন (এরর ঘটে থাকলেও) এর Close ফাংশনটি ঠিক একবার কল করা নিশ্চিত করুন।

নির্দিষ্ট এরর টাইপ পরীক্ষা করা যায় টাইপ অ্যাসারশন দিয়ে। প্যানিক রিকভারি থেকে এররের তথ্য রিটার্ন করার একটি সহায়ক উপায় হিসেবে নেমড রিটার্ন ভ্যালু সম্পর্কেও দেখে নিতে হতে পারে।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Go Exercism

এরর হ্যান্ডলিং শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Go ট্র্যাকের 34টি কনসেপ্ট165টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।