কখনও কখনও আপনার একটি নির্মাণকারী লিখতে হবে যা ব্যর্থ হতে পারে। উদাহরণস্বরূপ, বলুন যে আমি কোনও ফাইলের পাথ দিয়ে কোনও অবজেক্টটি ইনস্ট্যান্ট করতে চাই something
obj = new Object("/home/user/foo_file")
যতক্ষণ পাথ কোনও উপযুক্ত ফাইলের দিকে নির্দেশ করে ততক্ষণ সবকিছু ঠিক আছে। তবে স্ট্রিংটি যদি বৈধ পাথ না হয় তবে জিনিসগুলি ভাঙা উচিত। কিন্তু কিভাবে?
আপনি করতে পারেন:
- একটি ব্যতিক্রম নিক্ষেপ
- নাল অবজেক্ট রিটার্ন করুন (যদি আপনার প্রোগ্রামিং ল্যাঙ্গুয়েজ কনস্ট্রাক্টরকে মান ফিরিয়ে দিতে দেয়)
- একটি বৈধ অবজেক্ট ফিরিয়ে দিন তবে একটি পতাকা সহ ইঙ্গিত করে যে এর পথটি সঠিকভাবে সেট করা হয়নি (উগ)
- অন্যান্য?
আমি ধরে নিয়েছি যে বিভিন্ন প্রোগ্রামিং ভাষার "সেরা অনুশীলনগুলি" এটিকে ভিন্নভাবে প্রয়োগ করবে। উদাহরণস্বরূপ আমি মনে করি ওবিজেসি পছন্দ করে (2)। তবে (২) সি ++ এ কার্যকর করা অসম্ভব যেখানে কনস্ট্রাক্টরদের অবশ্যই রিটার্ন টাইপ হিসাবে শূন্য থাকতে হবে। সেক্ষেত্রে আমি এটি নিচ্ছি যে (1) ব্যবহৃত হয়েছে।
আপনার পছন্দসই প্রোগ্রামিং ভাষায় আপনি কীভাবে এই সমস্যাটি পরিচালনা করবেন এবং কীভাবে ব্যাখ্যা করবেন তা দেখাতে পারেন?
void
- তারা কোনও বস্তু ফেরত দেয়।
new
কল operator new
, তারপরে এটি পূরণের জন্য নির্মাণকারী। কনস্ট্রাক্টর কিছুই ফিরিয়ে দেয় না এবং new
যে পয়েন্টারটি পেয়েছিল তা ফেরত দেয় operator new
। void
যদিও " কিছু" প্রত্যাবর্তন করে না "বোঝায়" রিটার্নগুলি "গ্র্যাবস-এর জন্য রয়েছে।