আমি রুবি শিখছি এবং failকীওয়ার্ডটির মুখোমুখি হয়েছি । এর মানে কী?
if password.length < 8
fail "Password too short"
end
unless username
fail "No user name set"
end
আমি রুবি শিখছি এবং failকীওয়ার্ডটির মুখোমুখি হয়েছি । এর মানে কী?
if password.length < 8
fail "Password too short"
end
unless username
fail "No user name set"
end
fail "Password too short" if password.length < 8এবংfail "No user name set" unless username
উত্তর:
রুবিতে এর failসমার্থক শব্দ raise। failশব্দ একটি পদ্ধতি Kernelমডিউল যা বর্গ দ্বারা অন্তর্ভুক্ত করা হয় Object। failপদ্ধতি ঠিক এরূপ যেন কোন রানটাইম এরর উত্থাপন raiseশব্দ।
failপদ্ধতি তিন overloads আছে:
fail: RuntimeErrorএকটি ত্রুটি বার্তা ছাড়াই একটি উত্থাপন ।
fail(string): RuntimeErrorএকটি ত্রুটি বার্তা হিসাবে স্ট্রিং আর্গুমেন্ট সহ একটি উত্থাপন :
fail "Failed to open file"
fail(exception [, string [, array]]): al exceptionচ্ছিক ত্রুটি বার্তা (দ্বিতীয় তর্ক) এবং কলব্যাক তথ্য (তৃতীয় যুক্তি) সহ শ্রেণীর (প্রথম যুক্তি) ব্যতিক্রম উত্থাপন করে ।
উদাহরণ: ধরুন আপনি কোনও ফাংশন সংজ্ঞায়িত করেছেন যা কোনও খারাপ যুক্তি দিলে ব্যর্থ হওয়া উচিত। একটি ArgumentErrorবা না বাড়ানো ভাল RuntimeError:
fail ArgumentError, "Illegal String"
আরেকটি উদাহরণ: আপনি পুরো পাস করতে পারেন ব্যাক-ট্রেস করতে failযাতে আপনি ভিতরে ট্রেস অ্যাক্সেস করতে পারেন পদ্ধতি rescueব্লক:
fail ArgumentError, "Illegal String", caller
callerএকটি কার্নেল পদ্ধতি যা ফর্মের স্ট্রিংগুলির অ্যারে হিসাবে ব্যাকট্র্যাসটি দেয় file:line: in 'method'।
কোনও যুক্তি ছাড়াই the এ ব্যতিক্রম উত্থাপন! বা time! শূন্য হয় একটি একক স্ট্রিং আর্গুমেন্টের সাহায্যে বার্তা হিসাবে স্ট্রিং সহ একটি রানটাইমআরার উত্থাপন করে। অন্যথায়, প্রথম প্যারামিটারটি একটি ব্যতিক্রম শ্রেণীর নাম (বা এমন কোনও বস্তু যা একটি ব্যতিক্রম বার্তা প্রেরণে একটি ব্যতিক্রম বস্তু ফেরত দেয়) হওয়া উচিত। Alচ্ছিক দ্বিতীয় প্যারামিটারটি ব্যতিক্রমের সাথে সম্পর্কিত বার্তাটি সেট করে এবং তৃতীয় প্যারামিটারটি কলব্যাক তথ্যের একটি অ্যারে। ব্যতিক্রমগুলি শুরু ... শেষের ব্লকগুলির রেসকিউ ক্লাস দ্বারা ধরা পড়ে।
raise
রুবোকপ উভয় শব্দের ব্যবহার সম্পর্কে বলেছেন;
' ব্যতিক্রমগুলি সিগন্যাল করার
failপরিবর্তে ব্যবহার করুনraise' '' ব্যতিক্রমগুলি পুনর্বিবেচনার
raiseপরিবর্তে ব্যবহার করুনfail' '
এখানে একটি উদাহরণ।
def sample
fail 'something wrong' unless success?
rescue => e
logger.error e
raise
end
fail == raise
অন্য কথায়, ত্রুটি-উত্থাপন পদ্ধতির failজন্য একটি জনপ্রিয় নাম মাত্র raise। ব্যবহার:
fail ArgumentError, "Don't argue with me!"
www.ruby-doc.org আপনার বন্ধু। আমি যখন গুগলছিলাম তখন rubydoc fail" কার্নেল " প্রথম হিট হয়েছিল। আমার পরামর্শ হ'ল সন্দেহ যখন হয়, তেমনি সংজ্ঞাযুক্ত স্টাফের জন্য নির্দিষ্ট উত্সে যান।
raiseব্যতিক্রমগুলি পরিচালনা করার সময় এবংfailকখন না ব্যবহার করে তা লোকেদের ব্যবহারযোগ্য তা জানার জন্য নীচের উত্তরগুলিও জরুরী ।