এক

এক্সেপশন মধ্যে Elixir

8টি অনুশীলনী

এক্সেপশন সম্পর্কে

Exception Behaviour নির্ধারণ করে কীভাবে errors রেইজ ও দেখানো হয়।

এতে দুটি ঐচ্ছিক কলব্যাক আছে:

  • message/1 এরর স্ট্রাক্টকে একটি পাঠযোগ্য মেসেজে রূপান্তর করে।
  • exception/1 raise/2-এর দ্বিতীয় আর্গুমেন্ট থেকে মেসেজটি তৈরি করে, ফলে মেসেজটি পরিবর্তন করা যায়।

ডিফাইন করা এররগুলো:

  • যে মডিউলে এগুলো ইমপ্লিমেন্ট করা হয়, সেই মডিউলের নামই এদের নাম।
  • স্ট্রাক্ট টাইপের একটি এক্সটেনশন।
  • এতে একটি :message ফিল্ড থাকে।
  • কাঙ্ক্ষিত এরর রেইজ করতে এগুলো raise/1 ও raise/2-এর সঙ্গে ব্যবহার করা যায়।

একটি এক্সেপশন ডিফাইন করা

একটি এরর মডিউল থেকে এক্সেপশন ডিফাইন করতে defexception ম্যাক্রোটি ব্যবহার করুন:

# Defines a minimal error, with the name `MyError`
defmodule MyError do
  defexception message: "error"
end

# Defines an error with a customized exception/1 function
defmodule MyCustomizedError do
  defexception message: "custom error"

  @impl true
  def exception(value) do
    case value do
      [] ->
        %MyCustomizedError{}

      _ ->
        %MyCustomizedError{message: "Alert: " <> value}
    end
  end
end

এক্সেপশন ব্যবহার করা

ডিফাইন করা এরর বিল্ট-ইন এররের মতোই raise/1 বা raise/2 যেকোনোটি দিয়ে ব্যবহার করা যায়:

raise MyError
# => ** (MyError) error

raise MyError, "an error occurred"
# => ** (MyError) an error occurred

raise MyCustomizedError
# => ** (MyCustomizedError) "custom error"

raise MyCustomizedError, "a very bad error occurred"
# => ** (MyCustomizedError) Alert: a very bad error occurred
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

এক্সেপশন শিখুন

অনুশীলন লক করা আছে

এক্সেপশন অনুশীলন করতে আরও 2টি অনুশীলনী আনলক করুন