try, catch, rescue, এবং after এর ব্যবহার

Error Handling (এরর হ্যান্ডলিং) - এলিক্সির (Elixir) - Computer Programming

394

try, catch, rescue, and after in Elixir

Elixir তে error handling এবং exception management করার জন্য try, catch, rescue, এবং after ব্যবহৃত হয়। এগুলি exception handling প্রক্রিয়াকে আরও পরিষ্কার, সহজ, এবং কার্যকরী করে তোলে। চলুন, এগুলি কীভাবে কাজ করে এবং কিভাবে ব্যবহার করা যায় তা দেখে নেব।


1. try - Try Block

try ব্লকটি ব্যবহৃত হয় যেখানে আপনি কোডের একটি অংশ পরীক্ষা করতে চান এবং সেখানে কোন ত্রুটি ঘটলে সেটা catch বা rescue দ্বারা ধরতে চান। এটি exception handling প্রক্রিয়ায় প্রথম স্তর হিসেবে কাজ করে। আপনি try ব্লকের মধ্যে এমন কোড রাখতে পারেন যা ত্রুটি (error) সৃষ্টি করতে পারে।

Syntax:

try do
  # Some code that may raise an exception
end

2. rescue - Handling Exceptions

rescue ব্লকটি try এর সাথে ব্যবহার করা হয় এবং এটি ত্রুটি বা এক্সসেপশন (exception) হ্যান্ডেল করার জন্য ব্যবহৃত হয়। যখন try ব্লকের মধ্যে কোন ত্রুটি ঘটে, তখন সেই ত্রুটিটি rescue ব্লকে ধরা হয় এবং আপনি সেখানে ত্রুটির ধরন বা ত্রুটির মেসেজ ব্যবহার করে হ্যান্ডল করতে পারেন।

Syntax:

try do
  # Code that might raise an exception
rescue
  exception -> IO.puts("An error occurred: #{exception}")
end

উদাহরণ:

try do
  1 / 0  # Division by zero will cause an error
rescue
  ArithmeticError -> IO.puts("Cannot divide by zero!")
end

এখানে, 1 / 0 কোডটি ArithmeticError তৈরি করবে, এবং সেই ত্রুটিটি rescue ব্লক দ্বারা ধরা হবে, যেখানে "Cannot divide by zero!" প্রিন্ট হবে।


3. catch - Catching Throwed Values

catch ব্লকটি ব্যবহৃত হয় throw দ্বারা উত্পন্ন throw values ধরতে। Elixir তে throw ব্যবহার করা হয় কিছু নির্দিষ্ট মান বা অবস্থা "throw" করার জন্য, এবং catch সেই মান গুলো গ্রহণ করে। এটি সাধারণত ব্যবহার হয় কিছু বিশেষ অবস্থার জন্য, যেখানে ত্রুটি ফেলে ফেরানো হয়।

Syntax:

try do
  throw(:error)  # Throwing an error
catch
  :error -> IO.puts("Caught an error")
end

উদাহরণ:

try do
  throw(:some_value)
catch
  :some_value -> IO.puts("Caught the value!")
end

এখানে, throw(:some_value) কোটে একটি throw করা হচ্ছে এবং catch ব্লকে সেটি some_value হিসেবে ধরা হচ্ছে।


4. after - Always Executing Code

after ব্লকটি ব্যবহার করা হয় এমন কোড লেখার জন্য যা সবসময় try ব্লকের পর কার্যকর হবে, কোন ত্রুটি ঘটুক বা না ঘটুক। এটি ব্যবহারকারীর জন্য একটি উপকারী বৈশিষ্ট্য, যাতে কোড ব্লক শেষে কিছু টাস্ক, যেমন ক্লিনআপ বা রিসোর্স রিলিজ, করা যায়।

Syntax:

try do
  # Some code that may raise an exception
after
  # Code that will always execute
  IO.puts("This will always execute!")
end

উদাহরণ:

try do
  IO.puts("This will run")
  1 / 0  # This will raise an exception
rescue
  ArithmeticError -> IO.puts("Caught error!")
after
  IO.puts("This will always run, regardless of an error")
end

এখানে:

  • IO.puts("This will run") প্রথমে প্রিন্ট হবে।
  • 1 / 0 এর ফলে একটি ত্রুটি ঘটবে এবং rescue ব্লক সক্রিয় হবে।
  • তারপর after ব্লকের কোড, "This will always run, regardless of an error" সর্বদা প্রিন্ট হবে, কোনো ত্রুটি ঘটুক বা না ঘটুক।

অন্তর্ভুক্ত উদাহরণ:

এখন, পুরো প্রক্রিয়াটি একসাথে ব্যবহার করে দেখি।

try do
  IO.puts("Attempting to divide")
  1 / 0  # Will cause an ArithmeticError
rescue
  ArithmeticError -> IO.puts("Cannot divide by zero!")
catch
  :error -> IO.puts("Caught a thrown error!")
after
  IO.puts("This will always be executed, regardless of success or failure.")
end

আউটপুট:

Attempting to divide
Cannot divide by zero!
This will always be executed, regardless of success or failure.

এখানে:

  • প্রথমে কোডটি "Attempting to divide" প্রিন্ট করবে।
  • তারপর 1 / 0 একটি ArithmeticError তৈরি করবে এবং rescue ব্লকটি চলে যাবে।
  • after ব্লকটি সর্বদা চালিত হবে, "This will always be executed..." বার্তা দেখানোর মাধ্যমে।

সারসংক্ষেপ

  • try: ব্যবহার হয় কোডের একটি অংশ পরীক্ষা করার জন্য এবং তার মধ্যে ত্রুটি বা এক্সসেপশন ঘটলে সেটি catch বা rescue ব্লক দ্বারা ধরা হয়।
  • rescue: এটি exception বা ত্রুটি ধরার জন্য ব্যবহৃত হয় এবং কোডে ত্রুটি ঘটলে সেই ত্রুটির জন্য নির্দিষ্ট কর্মপদ্ধতি নেওয়া হয়।
  • catch: throw করা মান বা ত্রুটিগুলি ধরা হয়, যা try ব্লকের মধ্যে throw করা হয়।
  • after: এটি কোডের সেই অংশ যা সর্বদা কার্যকর হবে, তা কোনো ত্রুটি ঘটুক বা না ঘটুক।

Elixir তে এই চারটি বৈশিষ্ট্য একটি শক্তিশালী ত্রুটি এবং এক্সসেপশন হ্যান্ডলিং ব্যবস্থা প্রদান করে, যা প্রোগ্রামটির স্থিতিস্থাপকতা (fault tolerance) বাড়ায় এবং কোডের কার্যকারিতা উন্নত করে।

Content added By
Promotion

Are you sure to start over?

Loading...