আমরা পূর্বে retry কীওয়ার্ড সম্পর্কে আলোচনা করেছি যখন এক্সসেপশন হ্যান্ডলিং-এ রিট্রাই করার কথা বলা হয়েছিল। এর কম পরিচিত সমকক্ষ redo একইভাবে কাজ করে, কিন্তু পুরো ব্লকের পরিবর্তে লুপের ইটেরেশন পুনরায় চালায়।
redo কীওয়ার্ড
পূর্বের একাডেমি আর্টিকেলে আমরা শিখেছি, retry একটি ব্লকে কোডের টুকরো রিট্রাই করার সুযোগ দেয়:
এই উদাহরণটি কনসোলে "Iteration" শব্দটি প্রিন্ট করার আগে একটি এক্সসেপশন থ্রো করে। রেসকিউ ব্লকটি এক্সিকিউট হয়, যা retry কল করে এবং ব্লকটি আবার শুরু থেকে চালু হয়। ফলে আমাদের প্রোগ্রাম অনন্তকাল Iteration প্রিন্ট করতে থাকে। redo কীওয়ার্ড লুপ ব্যবহার করার সময় একই প্রভাব অর্জন করতে সাহায্য করে। এটি بتلكে পরিস্থিতিতে উপকারী যখন আপনাকে ইটারেশন করার সময় রিট্রাই করার দরকার হয়।
এটি প্রিন্ট করবে:
লক্ষ্য করুন কিভাবে ইটেরেশন কাউন্ট একই থাকে? এটি এক্সিকিউশনকে লুপের শুরুতে ফিরিয়ে আনে। retry ব্যবহার করে এই কোডের ভেরিয়েন্টটি সুনির্দিষ্ট একই আউটপুট দেবে:
আপনি একটি লুপে রিট্রাই ইমপ্লিমেন্ট করতে redo ব্যবহার করতে পারেন। পরবর্তী উদাহরণে আমাদের একটি জবের কিউ রয়েছে। সেগুলো হয় :success বা :failure রিটার্ন করে। আমরা লুপের একই ইটারেশনকে বারবার চালিয়ে যাব যতক্ষণ না জবটি সফল হয়।
next কীওয়ার্ড
যদি আপনি বর্তমান ইটেরেশনের শুরুতে ফিরে যাওয়ার পরিবর্তে লুপের পরবর্তী ইটেরেশনে যেতে চান, তবে next ব্যবহার করতে পারেন।
এটি প্রিন্ট করবে:
দেখুন কিভাবে ইটেরেশন কাউন্ট ক্রমবর্ধমান থাকছে? অধিকাংশ ক্ষেত্রে next ব্যবহার করাই আপনার পছন্দ। redo-কে তখন দেখুন যখন আপনাকে একটি লুপ চালাতে হবে যা সুনির্দিষ্ট সংখ্যকবার চলবে বা একটি অ্যারে atravérse করার সময় এরর হ্যান্ডলিং দরকার হবে।
আমরা আশা করি আপনি লুপে ইটারেশন রিডু করার সম্পর্কে কিছু নতুন শিখতে পেরেছেন এবং অ্যাপসিগন্যাল একাডেমি সিরিজের এই আর্টিকেলটি (অথবা অন্যগুলো) সম্পর্কে আপনার মতামত জানতে চাই। দয়া করে আপনার মতামত জানাতে অথবা কোন রুবি বিষয়ে আরও জানতে চান তা বলতে সংকোচ করবেন না।
থাইজ ক্যাডিয়ার
চিফ টেকনোলজি অফিসার ও কো-ফাউন্ডার। থাইজ কখনও কখনও আমাদের ইনফ্রাস্ট্রাকচারে কাজ করার জন্য মাসের পর মাস অনুপস্থিত থাকেন। আমাদের বিলিয়ন অনুরোধ সঠিকভাবে হ্যান্ডেল হয় তা নিশ্চিত করেন। কোম্পানির সেরা ড্রামার।
থাইজ ক্যাডিয়ার সকল আর্টিকেল