এরর হ্যান্ডলিং (Error Handling)

সফটওয়্যারে এরর একটি বাস্তব ঘটনা, তাই Rust-এ এমন পরিস্থিতিগুলো হ্যান্ডেল করার জন্য বেশ কিছু ফিচার রয়েছে যেখানে কোনো কিছু ভুল হয়। অনেক ক্ষেত্রে, Rust চায় যে আপনি এররের সম্ভাবনা স্বীকার করুন এবং আপনার কোড কম্পাইল করার আগে কোনো পদক্ষেপ নিন। এই প্রয়োজনীয়তা আপনার প্রোগ্রামকে আরও শক্তিশালী করে তোলে, এটি নিশ্চিত করে যে আপনি প্রোডাকশনে আপনার কোড ডিপ্লয় (deploy) করার আগে এররগুলো আবিষ্কার করবেন এবং সেগুলোকে যথাযথভাবে হ্যান্ডেল করবেন!

Rust এররগুলোকে দুটি প্রধান বিভাগে ভাগ করে: রিকভারেবল (recoverable) এবং আনরিকভারেবল (unrecoverable) এরর। একটি রিকভারেবল এরর, যেমন file not found এররের ক্ষেত্রে, আমরা সম্ভবত শুধুমাত্র ব্যবহারকারীকে সমস্যাটি জানাতে চাই এবং অপারেশনটি পুনরায় চেষ্টা করতে চাই। আনরিকভারেবল এররগুলো সর্বদাই বাগের লক্ষণ, যেমন একটি অ্যারের শেষের বাইরের কোনো লোকেশন অ্যাক্সেস করার চেষ্টা করা, এবং তাই আমরা অবিলম্বে প্রোগ্রামটি বন্ধ করতে চাই।

বেশিরভাগ ভাষা এই দুটি ধরণের এররের মধ্যে পার্থক্য করে না এবং এক্সেপশন (exception)-এর মতো মেকানিজম ব্যবহার করে উভয়কেই একইভাবে হ্যান্ডেল করে। Rust-এ এক্সেপশন নেই। পরিবর্তে, এটির রিকভারেবল এররের জন্য Result<T, E> টাইপ এবং panic! ম্যাক্রো রয়েছে, যা প্রোগ্রামটি কোনো আনরিকভারেবল এররের সম্মুখীন হলে এক্সিকিউশন বন্ধ করে দেয়। এই চ্যাপ্টারটি প্রথমে panic! কল করা এবং তারপর Result<T, E> মান রিটার্ন করা নিয়ে আলোচনা করে। উপরন্তু, আমরা একটি এরর থেকে পুনরুদ্ধার করার চেষ্টা করব নাকি এক্সিকিউশন বন্ধ করব, তা সিদ্ধান্ত নেওয়ার সময় বিবেচ্য বিষয়গুলো অন্বেষণ করব।