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