সংক্ষেপে যদি প্রশ্নটি মনে হয় "কীভাবে আমি একটি পদ্ধতি থেকে দুটি সম্পর্কিত সম্পর্কহীন টুকরো ফেরত দেব যা একটি একক প্রকার ফেরত দেয়? আমি কখনই আমার ফেরতের মানগুলি পরীক্ষা করতে চাই না, এবং নালগুলি খারাপ, সেগুলি ব্যবহার করবেন না।"
আসুন আপনি কী পাস করতে চান তা দেখুন। হয় আপনি কোন int, অথবা একটি অ int- এ ক্ষণস্থায়ী হয় যুক্তিপূর্ণ জন্য কেন তুমি int- এ দিতে পারব না। প্রশ্নটি দৃser়ভাবে জানিয়েছে যে কেবল দুটি কারণ থাকবে, তবে যে কেউ কখনও এনাম তৈরি করেছে সে জানে যে কোনও তালিকা বাড়বে। অন্যান্য যৌক্তিকাগুলি নির্দিষ্ট করার সুযোগটি বোধগম্য।
প্রথমদিকে, তখন দেখে মনে হচ্ছে এটি ব্যতিক্রম ছোঁড়ার জন্য ভাল ক্ষেত্রে হতে পারে।
আপনি যখন কলারকে বিশেষ কিছু বলতে চান যা রিটার্নের ধরণের নয়, ব্যতিক্রমগুলি প্রায়শই যথাযথ সিস্টেম হয়: ব্যতিক্রমগুলি কেবল ত্রুটিযুক্ত অবস্থার জন্য নয়, আপনি কেন কেবল পারছেন তা ব্যাখ্যা করার জন্য আপনাকে প্রচুর প্রসঙ্গ এবং যুক্তি ফিরিয়ে দেওয়ার অনুমতি দেয় আজকের দিন
এবং এটি কেবলমাত্র সিস্টেম যা আপনাকে গ্যারান্টিযুক্ত-বৈধ ইনটগুলি ফিরিয়ে আনতে দেয় এবং গ্যারান্টি দেয় যে প্রতিটি ইনট অপারেটর এবং পদ্ধতি যে ইনট নেয় সেগুলি নাল, বা যাদু মানগুলির মতো অবৈধ মানগুলি পরীক্ষা করার প্রয়োজন ছাড়াই এই পদ্ধতির রিটার্ন মানটি গ্রহণ করতে পারে।
কিন্তু ব্যতিক্রম সত্যিই শুধুমাত্র একটি বৈধ সমাধান হলে, যেমন নাম থেকেই বোঝা, এই একটি হল ব্যতিক্রমী মামলা, না ব্যবসায়ের স্বাভাবিক কাজকর্মের।
এবং একটি চেষ্টা / ক্যাচ এবং হ্যান্ডলারটি নাল চেকের মতোই বয়লারপ্লেট, যা প্রথম স্থানে আপত্তি জানানো হয়েছিল।
এবং যদি কলারটিতে চেষ্টা / ধরা না থাকে, তবে কলারের কলারটি করতে হবে এবং আরও অনেক কিছু।
একটি নিষ্পাপ দ্বিতীয় পাস বলতে হয় "এটি একটি পরিমাপ .ণাত্মক দূরত্বের পরিমাপ সম্ভাবনা কম।" সুতরাং কিছু পরিমাপের জন্য ওয়াই, আপনার পক্ষে কেবল কনসেট থাকতে পারে
- -1 = অজানা,
- -2 = পরিমাপ করা অসম্ভব,
- -৩ = উত্তর দিতে অস্বীকার করেছে,
- -4 = জ্ঞাত তবে গোপনীয়,
- -5 = চাঁদের ধাপের উপর নির্ভর করে পরিবর্তিত হয়, টেবিল 5 এ দেখুন,
- -6 = চতুর্মাত্রিক, পরিমাপ শিরোনামে দেওয়া,
- -7 = ফাইল সিস্টেম পড়ার ত্রুটি,
- -8 = ভবিষ্যতের ব্যবহারের জন্য সংরক্ষিত,
- -9 = বর্গ / কিউবিক তাই Y এক্স এর সমান
- -10 = হ'ল একটি মনিটরের স্ক্রিন তাই এক্স, ওয়াই পরিমাপ ব্যবহার না করে: এক্সটিকে স্ক্রিনের তির্যক হিসাবে ব্যবহার করুন,
- -11 = একটি রশিদের পিছনে পরিমাপগুলি লিখেছিল এবং এটি অযৌক্তিকরূপে পরিণত করা হয়েছিল তবে আমি মনে করি এটি 5 বা 17 হয়,
- -12 = ... আপনি ধারণা পাবেন।
এটি প্রচুর পুরানো সি সিস্টেমে, এবং এমনকি আধুনিক সিস্টেমে যেখানে প্রকৃত প্রতিবন্ধকতা রয়েছে সেখানে এটি করা হয় এবং আপনি এটিকে কোনও ধরণের স্ট্রাক্ট বা মোনাডে আবদ্ধ করতে পারবেন না।
যদি পরিমাপগুলি নেতিবাচক হতে পারে তবে আপনি কেবল নিজের ডেটা টাইপকে বৃহত্তর করুন (উদাহরণস্বরূপ দীর্ঘ ইনট) এবং যাদুর মানগুলি ইনট এর পরিসরের চেয়ে বেশি হবে এবং আদর্শভাবে এমন কোনও মান দিয়ে শুরু করুন যা কোনও ডিবাগারে স্পষ্টভাবে প্রদর্শিত হবে।
এগুলি কেবল যাদুসংখ্যার চেয়ে বেশি আলাদা আলাদা চলক হিসাবে রাখার যথেষ্ট কারণ রয়েছে। উদাহরণস্বরূপ, কঠোর টাইপিং, রক্ষণাবেক্ষণযোগ্যতা এবং প্রত্যাশা মেনে চলতে।
আমাদের তৃতীয় প্রয়াসের পরে, আমরা এমন কেসগুলিতে সন্ধান করি যেখানে ব্যবসায়ের স্বাভাবিক অন্তর্ভুক্ত মূল্য না থাকা have উদাহরণস্বরূপ, যদি এই মানগুলির সংকলনে একাধিক অ-পূর্ণসংখ্যার এন্ট্রি থাকতে পারে। এর অর্থ একটি ব্যতিক্রম হ্যান্ডলারটি ভুল পদ্ধতির হতে পারে।
সেক্ষেত্রে এটি এমন কাঠামোর জন্য ভাল ক্ষেত্রে দেখায় যা ইনট এবং যৌক্তিকতাটি পাস করে। আবার, এই যুক্তিটি কেবল উপরের মত কনস্ট হতে পারে, তবে উভয়কে একই প্রান্তে ধরে রাখার পরিবর্তে আপনি এগুলিকে একটি কাঠামোর স্বতন্ত্র অংশ হিসাবে সংরক্ষণ করেন। প্রাথমিকভাবে, আমাদের নিয়ম রয়েছে যে যুক্তিটি সেট করা থাকলে ইনট সেট করা হবে না। তবে আমরা আর এই নিয়মের সাথে আবদ্ধ হই না; আমরা যদি প্রয়োজন হয় তবে বৈধ সংখ্যার জন্য যুক্তি সরবরাহ করতে পারি।
যেভাবেই হোক না কেন, যতবার আপনি এটি কল করবেন, আপনার এখনও বয়লারপ্লেট দরকার, তদন্তটি বৈধ কিনা তা দেখার জন্য যুক্তি পরীক্ষা করার জন্য, তারপর যুক্তিটি আমাদের যদি অনুমতি দেয় তবে টানুন এবং এর অংশটি ব্যবহার করুন।
"নাল ব্যবহার করবেন না" এর পিছনে আপনার যুক্তিগুলি অনুসন্ধান করতে হবে।
ব্যতিক্রমগুলির মতো নাল মানেই ব্যতিক্রমী রাষ্ট্রকে বোঝানো।
যদি কোনও কলকারী এই পদ্ধতিটি কল করে এবং কাঠামোর "যৌক্তিক" অংশটিকে সম্পূর্ণ উপেক্ষা করে কোনও ত্রুটি পরিচালনা না করে একটি সংখ্যা আশা করে এবং এটি একটি শূন্য হয়, তবে এটি শূন্যকে একটি সংখ্যা হিসাবে পরিচালনা করবে এবং ভুল হবে। যদি এটি একটি ম্যাজিক নম্বর পায়, এটি এটি একটি সংখ্যা হিসাবে বিবেচনা করবে এবং ভুল হবে। তবে এটি একটি নাল পেতে থাকলে, এটি পড়ে যাবে , কারণ এটি করণীয় ভাল করা উচিত।
সুতরাং প্রতিবার আপনি এই পদ্ধতিটি কল করার সময় অবশ্যই অবশ্যই তার ফেরতের মূল্যের জন্য অবশ্যই পরীক্ষা করা উচিত, তবে আপনি অবৈধ মানগুলি হ্যান্ডেল করুন, তা ইন-ব্যান্ড বা ব্যান্ডের বাইরে, চেষ্টা করুন / ধরুন, "যুক্তি" উপাদানটির জন্য কাঠামোটি পরীক্ষা করে, আন্তঃ একটি যাদু নম্বর জন্য, বা একটি শূন্য জন্য একটি int পরীক্ষা করা ...
বিকল্পটি, "আউট কুকুর এই পরিমাপটি খেয়েছে" এর মতো একটি যুক্তিযুক্ত অবৈধ অন্তর্ভুক্ত এবং একটি যুক্তি থাকতে পারে এমন আউটপুটটির গুণন পরিচালনা করার জন্য, সেই কাঠামোর জন্য গুণক অপারেটরকে ওভারলোড করা।
... এবং তারপরে আপনার অ্যাপ্লিকেশনের প্রতিটি অপারেটর ওভারলোড করুন যা এই ডেটাতে প্রয়োগ হতে পারে।
... এবং তারপরে ইনট লাগতে পারে এমন সমস্ত পদ্ধতি ওভারলোড করুন।
... এবং এই সমস্ত ওভারলোডগুলির মধ্যে এখনও অবৈধ ints এর জন্য চেক থাকা দরকার , যাতে আপনি এই এক পদ্ধতির রিটার্ন টাইপটিকে এমনভাবে আচরণ করতে পারেন যেন আপনি যখন কল করছেন তখন এটি সর্বদা একটি বৈধ int ছিল।
সুতরাং মূল ভিত্তিটি বিভিন্ন উপায়ে মিথ্যা:
- আপনার যদি অবৈধ মান থাকে তবে আপনি যে কোডগুলিতে মানগুলি পরিচালনা করছেন তার যে কোনও বিন্দুতে আপনি এই অবৈধ মানগুলি পরীক্ষা করা এড়াতে পারবেন না।
- আপনি যদি ইন্ট ব্যতীত অন্য কোনও কিছু ফিরিয়ে দিচ্ছেন তবে আপনি কোনও ইনট ফিরিয়ে দিচ্ছেন না, তাই আপনি এটি কোনও ইনট এর মতো আচরণ করতে পারবেন না। অপারেটর ওভারলোডিং আপনাকে ভান করতে দেয়, তবে এটি কেবল ভান করে।
- ম্যাজিক সংখ্যার (এনএলএল, এনএএন, ইনফ সহ ...) অন্তর্নিহিত আসলে আর কোনও ইনট নয়, এটি দরিদ্র মানুষের কাঠামো।
- নালগুলি এড়ানোর ফলে কোডটি আরও শক্তিশালী হয়ে উঠবে না, এটি কেবল অন্তরগুলি দিয়ে সমস্যাগুলি আড়াল করবে, বা এগুলি একটি জটিল ব্যতিক্রম-পরিচালনা কাঠামোতে স্থানান্তরিত করবে।