কম্পিউটার টিউটোরিয়াল

রুবিতে কাস্টোম এক্সেপশন মাস্টার করুন: ধাপে ধাপে গাইড

রুবিতে নিজস্ব এক্সেপশন তৈরি করা খুব সহজ। শুধু এই ধাপগুলো ফলো করুন:

১. একটি নতুন ক্লাস তৈরি করুন

রুবিতে এক্সেপশনগুলো সবকিছুর মতো ক্লাস! একটি নতুন টাইপের এক্সেপশন তৈরির জন্য, শুধু একটি ক্লাস তৈরি করুন যা StandardError বা এর চাইল্ড ক্লাস থেকে ইনহেরিট করে।

class MyError < StandardError
end

raise MyError

কনভেনশন অনুযায়ী, নতুন এক্সেপশনের ক্লাসের নাম "Error" দিয়ে শেষ হয়। ভালো অনুশীলন হলো আপনার কাস্টোম এক্সেপশনগুলো একটি মডিউলের ভিতরে রাখা। ফলে আপনার ফাইনাল এরর ক্লাসগুলো দেখাবে: ActiveRecord::RecordNotFound এবং Net::HTTP::ConnectionError।

২. একটি মেসেজ যোগ করুন

প্রতিটি রুবি এক্সেপশন অবজেক্টের একটি message অ্যাট্রিবিউট থাকে। এক্সেপশনের নামের পাশে প্রিন্ট হওয়া বড় টেক্সটটিই সেটা।

রুবিতে কাস্টোম এক্সেপশন মাস্টার করুন: ধাপে ধাপে গাইড এক্সেপশনের message অ্যাট্রিবিউটের উদাহরণ।

আপনি এক্সেপশন উত্থাপন করার সময় মেসেজ নির্দিষ্ট করতে পারেন:

raise MyError, "My message"

এবং আপনার কাস্টোম এরর ক্লাসে একটি ডিফল্ট মেসেজ যোগ করতে পারেন কনস্ট্রাক্টর যোগ করে।

class MyError < StandardError
  def initialize(msg="My default message")
    super
  end
end

৩. আপনার এক্সেপশনে কাস্টোম ডেটা অ্যাট্রিবিউট যোগ করুন

আপনি যেকোনো ক্লাসের মতো আপনার এক্সেপশনে কাস্টোম ডেটা যোগ করতে পারেন। আমরা আমাদের ক্লাসে একটি অ্যাট্রিবিউট রিডার যোগ করব এবং কনস্ট্রাক্টর আপডেট করব।

class MyError < StandardError
  attr_reader :thing
  def initialize(msg="My default message", thing="apple")
    @thing = thing
    super(msg)
  end
end

begin
  raise MyError.new("my message", "my thing")
rescue => e
  puts e.thing # "my thing"
end

এটাই সেটা! রুবিতে কাস্টোম এরর বা এক্সেপশন তৈরি করা সত্যিকারের অনেক কঠিন নয়। একটা জিনিস জানা দরকার। উদাহরণগুলোতে আমরা সবসময় StandardError থেকে ইনহেরিট করেছি। সেটা ইচ্ছাকৃত। রুবিতে Exception ক্লাস থাকা সত্ত্বেও, আপনাকে কখনো সরাসরি Exception থেকে ইনহেরিট করা উচিত নয়। আরও জানতে আমাদের Exception এবং StandardError এর পার্থক্য সম্পর্কিত আর্টিকেল পড়ুন।

  1. প্রাইরে এক্সেপশন হ্যান্ডলিং মাস্টার করুন: রেলস কনসোলে অ্যাডভান্সড টেকনিক

  2. রুবি এক্সেপশনে কনটেক্সচুয়াল ডেটা যোগ করুন: একটি প্র্যাক্টিক্যাল গাইড

  3. রুবি অবজেক্ট ডেকোরেটর প্যাটার্ন দিয়ে সমৃদ্ধ করুন: একটি প্র্যাক্টিক্যাল গাইড

  4. রুবিতে এক্সেপশন হ্যান্ডলিং 습득: একটি প্র্যাক্টিক্যাল গাইড