ट्रैक
/
Elixir
Elixir
/
सिलेबस
/
एक्सेप्शन
एक

एक्सेप्शन में 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 और अभ्यास अनलॉक कीजिए