Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

সফটওয়্যারে এরর (error) একটি বাস্তব সত্য, তাই কোনো কিছু ভুল হলে সেই পরিস্থিতি সামলানোর জন্য Rust-এ বেশ কিছু ফিচার (feature) রয়েছে। অনেক ক্ষেত্রে, Rust আপনার কোড কম্পাইল (compile) হওয়ার আগেই আপনাকে এররের সম্ভাবনা স্বীকার করতে এবং কিছু পদক্ষেপ নিতে বাধ্য করে। এই বাধ্যবাধকতা আপনার প্রোগ্রামকে আরও শক্তিশালী (robust) করে তোলে। এটি নিশ্চিত করে যে আপনি আপনার কোড প্রোডাকশনে (production) পাঠানোর আগেই এরর খুঁজে বের করবেন এবং সঠিকভাবে তা হ্যান্ডেল (handle) করবেন।

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

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