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