Ruby:
ত্রুটিগুলি পরিচালনা করা

কিভাবে:

রুবি begin, rescue, ensure, এবং end ব্যবহার করে এরর হ্যান্ডল করে। আপনি ঝুঁকিপূর্ণ কোডটি begin এবং end এ আবদ্ধ করেন। যদি কোনও এরর ঘটে, rescue কাজে লাগে।

begin
  # ঝুঁকিপূর্ণ কোড এখানে যায়।
  puts 10 / 0
rescue ZeroDivisionError => e
  puts "ওহো! আপনি এটা করতে পারবেন না: #{e.message}"
ensure
  puts "এটি সর্বদা চলবে, এরর থাকুক আর না থাকুক।"
end

নমুনা আউটপুট:

ওহো! আপনি এটা করতে পারবেন না: 0 দিয়ে ভাগ
এটি সর্বদা চলবে, এরর থাকুক আর না থাকুক।

গভীর ডুব

ঐতিহাসিকভাবে, প্রোগ্রামিং ভাষায় এরর হ্যান্ডলিং লক্ষণীয়ভাবে উন্নত হয়েছে, প্রাথমিক ভাষাগুলো প্রায়শই ক্রুড বা অস্তিত্বহীন মেকানিজম আছে। রুবি’র এক্সেপশন হ্যান্ডলিং পাইথন এবং স্মল্টক এর মত ভাষাগুলো দ্বারা অনুপ্রাণিত।

রুবিতে begin-rescue এর বিকল্প হল মেথড ডেফিনিশনগুলিতে rescue ব্যবহার বা অসামান্য ফ্লো কন্ট্রোলের জন্য throw এবং catch ব্যবহার করা, যদিও এগুলি সাধারণ এরর হ্যান্ডলিংয়ের জন্য ব্যবহৃত নয়।

একটি আকর্ষণীয় বিষয়: রুবি’র এক্সেপশনগুলি অবজেক্ট (Exception ক্লাসের ইন্সট্যান্স এবং এর উত্তরসূরি), তাই আপনি কাস্টম এরর ক্লাসগুলি ডিফাইন করতে পারেন এবং কেবল এররগুলি লগ করার চেয়ে বেশি কিছু করতে পারেন — আপনি আরও শক্তিশালী এরর হ্যান্ডলিংয়ের জন্য প্রোগ্রামে রিচ স্টেট বহন করতে পারেন।

আরও দেখুন

  • এক্সেপশন এবং এরর হ্যান্ডলিং সম্পর্কিত রুবি ডকুমেন্টেশন: ruby-doc.org
  • রুবি এরর হ্যান্ডলিং মূলনীতি সম্পর্কিত বিস্তারিত গাইড: thoughtbot.com