নতুন প্রোগ্রামারদের জন্য কীভাবে ব্যতিক্রম হ্যান্ডলিং শেখানো যায়? [বন্ধ]


21

আপনি প্রোগ্রামারগুলিতে এক্সেসপনেশন হ্যান্ডলিং শেখানোর বিষয়ে কীভাবে যাবেন। অন্যান্য সমস্ত বিষয় সহজেই শেখানো হয় - ডেটা স্ট্রাকচার, এএসপি.এনইটি, উইনফোর্ডস, ডাব্লুপিএফ, ডাব্লুসিএফ - আপনি নামটি দিয়েছিলেন, সবকিছু সহজেই শেখানো যায়।

ব্যতিক্রম হ্যান্ডলিংয়ের সাথে, তাদের চেষ্টা-ধরা-শিখিয়ে দেওয়া ব্যতিক্রম হ্যান্ডলিংয়ের সিনট্যাকটিক প্রকৃতি।

তবে যা শেখানো উচিত তা হল - আপনার কোডের কোন অংশটি আপনি চেষ্টা ব্লকে রেখেছেন ? ক্যাচ ব্লকে আপনি কী করবেন ?

আমি এটি একটি উদাহরণ দিয়ে বর্ণনা করি।

আপনি একটি উইন্ডোজ ফর্ম প্রকল্পে (একটি ছোট্ট ইউটিলিটি) কাজ করছেন এবং আপনি এটি 3 টি পৃথক প্রকল্পের সাথে নীচে হিসাবে নকশা করেছেন।

  1. UILayer
  2. BusinessLayer
  3. DataLayer

যদি কোনও ব্যতিক্রম (একটি এক্সডোকামেন্ট লোড করার কথা বলি তবে একটি ব্যতিক্রম ছোঁড়ে) ডেটালেয়ারে উত্থাপিত হয় (ইউআইএলায়ার বিজনেসলায়ারকে ডেকে তোলে যার ফলে ডেটালেয়ারকে ডাকা হয়), আপনি কি কেবল নিম্নলিখিতটি করেন?

//In DataLayer
try {
    XDocument xd_XmlDocument = XDocument.Load("systems.xml");
} 
catch(Exception ex)
{
    throw ex;
}

যা আবার বিজনেস লাইয়ারে ফেলে দেওয়া হয় এবং কোনটি ইউইলায়ারে ধরা পড়ে যেখানে আমি লগ ফাইলটিতে এটি লিখি?

আপনি কি এইভাবে ব্যতিক্রম হ্যান্ডলিং সম্পর্কে যাচ্ছেন?


15
আপনি যদি সেটা যে কাজ করতে যাচ্ছে, আপনি ধরা (ব্যতিক্রম প্রাক্তন) {থ্রো প্রাক্তন চাই না; } - পরিবর্তে কেবল ধরা {নিক্ষেপ; }
স্টিভেন ইভার্স

4
অবশেষে ব্লকগুলি সম্পর্কে ভুলবেন না?
ক্রিস

1
আপনার ট্যাগগুলিতে ভাষাটি নির্দিষ্ট করা উচিত। ব্যতিক্রমগুলির বেশিরভাগ বাস্তবায়নের জন্য সাধারণের চেয়ে বেশি বিশদে আপনি প্রবেশ করছেন এবং ব্লকের বাইরে থাকা বিষয়গুলিকে উপেক্ষা করছেন। উদাহরণস্বরূপ, সি ++ এ, ব্যতিক্রম হ্যান্ডলিংয়ের সবচেয়ে গুরুত্বপূর্ণ অংশটি কীভাবে ব্যতিক্রম-নিরাপদ প্রোগ্রামগুলি লিখতে হয় তা জানা knowing
ডেভিড থর্নলি 26'10


আমি আশা করি আপনি জানেন যে কোনও "ব্যতিক্রম" ধরা এটি খারাপ ধারণা। নির্দিষ্ট ব্যতিক্রমগুলি ধরতে এবং সেগুলি হ্যান্ডেল করার জন্য আপনার নেস্টেড ক্যাচ ব্লক থাকা উচিত (কেবল ব্যতিক্রম ছোঁড়াবেন না)।
বিয়োগফল সেভেন

উত্তর:


29

ব্যতিক্রম হ্যান্ডলিং সম্পর্কে ব্যাখ্যা করার জন্য, এর পিছনের ধারণাটি ব্যাখ্যা করুন: যে কোডটিতে একটি ত্রুটি ঘন ঘন ঘটে থাকে তা কীভাবে সঠিকভাবে সেই ত্রুটিটি পরিচালনা করবেন তা জানেন না। কোডটি যে কীভাবে এটি সঠিকভাবে পরিচালনা করতে পারে তা হ'ল সেই ফাংশন হতে পারে যা কলটিকে ডেকে আনে, বা এটি কল স্ট্যাককে আরও বাড়িয়ে তুলতে পারে।

আপনি যখন এমন একটি রুটিন লিখেন যা একটি রুটিনকে কল করে যা একটি ব্যতিক্রম ছুঁড়ে দিতে পারে, যদি আপনি কীভাবে সেই ত্রুটিটি সঠিকভাবে পরিচালনা করতে জানেন তবে কলটিকে একটি ট্রাই ব্লক করুন এবং ত্রুটি-পরিচালনা করার কোডটি ক্যাচ ব্লকে রেখে দিন। যদি তা না হয় তবে একে একে ছেড়ে দিন এবং কল স্ট্যাকের কিছু উপরে আপনার ত্রুটিটি পরিচালনা করতে দিন।

"ক্যাচ প্রাক্তন, থ্রো প্রাক্তন" বলা ব্যতিক্রম হ্যান্ডলিংয়ের পক্ষে ভাল উপায় নয় , কারণ এটি আসলে কোনও কিছুই হ্যান্ডেল করে না। এছাড়াও, আপনার ভাষার ব্যতিক্রম মডেল কীভাবে কাজ করে তার উপর নির্ভর করে, এটি যদি ক্ষতিকারক হতে পারে তবে যদি আপনি সমস্যাটি ডিবাগ করতে ব্যবহার করতে পারেন এমন স্ট্যাক ট্রেস তথ্য সাফ করেন। কেবল ব্যতিক্রমটি কল স্ট্যাক প্রচার করতে দিন যতক্ষণ না এটি একটি রুটিনে আঘাত করে যে এটি কীভাবে পরিচালনা করতে পারে।


4
"... যেহেতু এটা আসলে কিছু হ্যান্ডেল নেই", ব্যতিক্রম তাই প্রায়ই হ্যান্ডলিং নতুন লোকেদের হ্যান্ডলিং উপায়ে সংক্রামক মনে করেন এবং আপনি সমস্যা মেরামত করার কিছু না থাকলে বুঝতে পারছি না, এটা জন্য +1 না ব্যতিক্রম হ্যান্ডলিং, শুধু কোড ফোলা
জিমি হোফা

13

বেশিরভাগ জিনিসের মতো, ব্যতিক্রম এবং ব্যতিক্রম হ্যান্ডলিং সম্ভবত নতুন প্রোগ্রামারদের সমস্যার সন্ধানের সমাধান হিসাবে মনে হবে যতক্ষণ না আপনি আপাতদৃষ্টিতে সরল সমাধান (সি স্টাইলের রিটার্ন কোড এবং এর্ন) এত খারাপ কাজ করে কেন তা দেখাচ্ছেন না। আমি সমস্যাটি অনুপ্রাণিত করে এবং প্রসঙ্গে রেখে দিয়ে শুরু করব। রিটার্ন কোড বা গ্লোবাল / স্ট্যাটিক ভেরিয়েবলগুলি ব্যবহার করে কীভাবে ত্রুটি পরিচালনা করা যায় তা দেখান। তারপরে এটি কেন ভাল কাজ করে না তার উদাহরণ দিন। তারপরে এবং কেবল তখনই, ব্যতিক্রমগুলি উপস্থাপন করুন এবং ব্যাখ্যা করুন যে তারা ব্যান্ড-অফ-ব্যান্ড সিগন্যালিংয়ের একটি রূপ এবং পুরো বিষয়টি হ'ল আপনি যদি কোনও ব্যতিক্রম উপেক্ষা করেন তবে ডিফল্ট আচরণ হ'ল যে কোনও ব্যক্তিকে কল স্ট্যাকটি বাক্স আপ করতে হবে can এটা সামলাও.

নীচের লাইন: সিটিতে কীভাবে ত্রুটি পরিচালনা করা হয়েছিল তা দেখানো শিক্ষার্থীদের বুঝতে পারে যে ব্যতিক্রমগুলি আসলে কী এবং যে ব্যতিক্রমগুলি আপনি সত্যিই পরিচালনা করতে পারবেন না তা অন্ধকার যুগে যেভাবে করা হয়েছিল তা মূলত অনুকরণ করে।


2
1তিহ্যবাহী সি স্টাইলের রিটার্ন কোড এবং ত্রুটি সংখ্যায় তাদের নেতৃত্ব দেওয়ার শিক্ষণ অনুশীলনের জন্য +1 এবং এটি দেখায় যে এটি খারাপভাবে কাজ করে না এবং তাই এটি কীভাবে কাজ করবে তা তাদের শেখানো একটি উজ্জ্বল!
কানিনি

3
@ ক্যানিনি: সাধারণভাবে আমি মনে করি বেশিরভাগ তুলনামূলকভাবে নতুন / উচ্চ স্তরের নির্মাণগুলি সমস্যার সন্ধানের মতো মনে হয় এবং ভুল সমস্যাটি সহজেই বোঝা যায় যদি আপনি বুঝতে না পারছেন যে তারা কোন সমস্যার সমাধান করতে চেয়েছিল এবং কেন এটি উদ্ভাবিত হয়েছিল।
dsimcha

আমি একমত যে ব্যতিক্রম ছাড়া এটি কীভাবে করা হবে তা প্রদর্শন করা ভাল তবে তারপরে ব্যতিক্রম কখন ব্যবহার করতে হবে এবং অন্যান্য প্রযুক্তিগুলি কখন ব্যবহার করবেন (কারণ সমস্ত পরিস্থিতি ব্যতিক্রমী নয়)
ম্যাথিউ এম এম

@ ম্যাথিউ: ঠিক আছে। তবে যদি আপনি বুঝতে পারেন যে কোন historicalতিহাসিক সমস্যাগুলি ব্যতিক্রমগুলি সমাধান করার অর্থ, শূন্যপদে সেগুলি সম্পর্কে শিখার চেয়ে, এটি আরও স্পষ্ট হয়ে ওঠে যে এটি অ-ব্যতিক্রমী পরিস্থিতিতে তাদের ব্যবহার করা বোকামি।
dsimcha

ঠিক আছে, এজন্যই আপনি আমার +1 পেয়েছেন। আমি কেবল অনুভব করেছি যে আপনার উত্তরটি "অন্য কোনও প্রক্রিয়া কখনও ব্যবহার করবেন না" হিসাবে ব্যাখ্যা করা যেতে পারে :) :)
ম্যাথিউ এম।

5

আমি এর সংক্ষিপ্ত ব্যতিক্রমগুলির জন্য ডিজাইন নির্দেশিকাগুলি দিয়ে শুরু করব এবং এতে ডিও, ডু না এবং এভিড অন্তর্ভুক্ত রয়েছে। এটি এর কারণও দেয়।

আপনার উদাহরণস্বরূপ রিভেলভেন্ট বিভাগটি ব্যতিক্রম মোড়ানো হবে

এবং এটি এইভাবে লেখা হবে আশা করি। মনে রাখবেন যে এটি একটি নির্দিষ্ট ব্যতিক্রম ধরা পড়ে এবং তথ্য যুক্ত করার চেষ্টা করে যাতে আরও অর্থবহ বার্তা প্রচারিত হয়। এছাড়াও লক্ষ করুন যে লগিংয়ের উদ্দেশ্যে অভ্যন্তরীণ ব্যতিক্রম এখনও বজায় রয়েছে

//In DataLayer

try
{
XDocument xd_XmlDocument = XDocument.Load("systems.xml");
}
catch(FileNotFoundException ex)
{
        throw new TransactionFileMissingException(
                     "Cannot Access System Information",ex);
}

ডেপুটি লেয়ারে এই ব্যতিক্রম ব্লক থাকা বা সঠিকভাবে ফাইলটি চেক করা বিজনেস লেয়ারের কাছে থাকা উচিত কিনা তা আপগ্রেড কণিনী জিজ্ঞাসা করে।

ভাল প্রথমে আমি এটি উল্লেখ করতে চাই যে মোড়কের ব্যতিক্রমগুলির যৌক্তিকতা এটি

নিম্ন স্তরের ব্যতিক্রমটি যদি উচ্চ স্তরের অপারেশনের প্রসঙ্গে অর্থবোধ না করে তবে আরও উপযুক্ত ব্যতিক্রমে নিম্ন স্তর থেকে ছুঁড়ে দেওয়া নির্দিষ্ট ব্যতিক্রমগুলি মোড়ানো বিবেচনা করুন।

সুতরাং যদি আপনি মনে করেন যে উচ্চতর স্তর রয়েছে সেগুলি সম্পর্কে ফাইলটি সম্পর্কে মোটামুটি জানা উচিত তবে আপনার ডেটা স্তরটি দেখতে এমন হওয়া উচিত

//In DataLayer

XDocument xd_XmlDocument = XDocument.Load("systems.xml");

নো ট্রাই নো ক্যাচ।

ব্যক্তিগতভাবে আমি অনুভব করি যে যদি না আপনার ডেটা স্তরটি ব্যবহারযোগ্য কিছু করতে না পারে যেমন একটি ডিফল্ট সিস্টেমগুলি ব্যবহার করে x এক্সএমএল এটি অ্যাসেম্বলি রিসোর্স, কিছুই না করা বা ব্যতিক্রম মোড়ানো একটি ভাল বাজি কারণ আপনার লগিং আপনাকে কী পদ্ধতি এবং কোন ফাইলটি সমস্যা ছিল তা বলবে। ( throw exএই ক্ষেত্রে বা পছন্দসইগুলি throwখুব বেশি করে তবে কোনও মূল্য যুক্ত করে না)। এর অর্থ হ'ল একবার শনাক্ত করার পরে আপনি সমস্যাটি দ্রুত সমাধান করতে সক্ষম হবেন।

একটি সহায়তা হিসাবে এই বিশেষ উদাহরণটিতেও এই এক্সডোকামেন্টে নিম্নলিখিত সমস্যা রয়েছে o লোডটি চারটি ব্যতিক্রম ছুঁড়ে ফেলতে পারে

  • ArgumentNullException
  • SecurityException
  • FileNotFoundException
  • UriFormatException

আমরা নিরাপদে গ্যারান্টি দিতে পারি না যে নীচের কোডটি নিক্ষেপ করবে না এবং ফাইলনটফাউন্ডএক্সসেপশন হবে না, কেবলমাত্র কারণ আমরা যখন অস্তিত্ব পরীক্ষা করি এবং লোড করি তখন চলে যায়। ব্যবসায়ের স্তরটিতে এটি উপলব্ধ থাকলে কোনও লাভ হবে না।

 if (File.Exists("systems.xml")) 
     XDocument.Load("systems.xml");

সিকিউরিটিএক্সেপশন আরও খারাপ কারণ এটি নিক্ষেপ হওয়ার অন্যান্য কারণগুলির মধ্যে অন্য কোনও প্রক্রিয়াটিতে যদি একটি এক্সক্লুসিভ ফাইল লক ধরা পড়ে তবে আপনি ত্রুটিটি পাবেন না যতক্ষণ না আপনি এটি পড়ার জন্য খোলার চেষ্টা করেন কারণ ফাইল নেই। ক্যানিওপেনটিস () পদ্ধতি নেই। এবং যদি এ জাতীয় পদ্ধতি বিদ্যমান থাকে তবে আপনার এখনও ফাইল.এক্সজিস্টগুলির মতো একই সমস্যা রয়েছে


স্থির করুন: ধন্যবাদ! তবে ডেটা লেয়ারে এই ব্যতিক্রম ব্লক থাকা কি আরও সঠিক? ফাইলটি পাওয়া যায় কি না তা পুরো স্তরটি বিজনেস লেয়ারে থাকা উচিত? অন্যথায়, আমি কোড লেখার আপনার পদ্ধতির সাথে সম্মত হই।
কানিনি

ফিক্স: আমার মাতৃভাষায় কানিনী মানে একটি কম্পিউটার যেখানে কানির অর্থ একটি ফল ;-)
কানিনি

আমি বলতে পারি আপনি আমার ত্রুটি দ্বারা খুব বেশি বিচলিত নন তবে আমি খুব দুঃখিত এবং আমি এটি সংশোধন করেছি।
কনরাড ফ্রিক্স

1
ঠিক করুন: বিচলিত? একেবারেই না. বেশিরভাগ ক্ষেত্রেই আনন্দিত। আমার ভাই হেসে থামেনি কারণ আমি এটিকে প্রাথমিকভাবে এটি উল্লেখ করেছি কারণ, আমি বিজোড় আকার ছাড়া আর কোনওভাবেই ফলের সাথে সাদৃশ্য পাই না ...
কানিনি

4

একটি ভূমিকা অভিনয় করতে দেয়। (এটি কোনও রসিক পোস্ট নয়)

যেখানে আপনি কল চেইনটি ব্যবহার করবেন সেখানে আপনার একটি ওয়ার্কশপ করা উচিত। প্রতিটি ব্যক্তি একটি বস্তু হয়। আপনার জন্য কিছু নতুন এবং কিছু লোকের প্রয়োজন হবে যারা "গেম" বোঝে সহায়তা করে।

IO ফাইলের মতো একটি খুব সাধারণ সমস্যা ব্যবহার করুন। gui-> model-> file_io

ফাইল রিডার হওয়া ব্যক্তিটির পরবর্তী একটিকে বলা দরকার ....

প্রথমে এটি রিটার্ন কোড দিয়ে করুন। (এটি পোস্টের পরে নোটগুলি ব্যবহার করবেন?)

যদি ইন্টারঅ্যাকশনগুলি কেবল "কোড কী বলে" খুব শীঘ্রই আপনি লোকেরা বুঝতে পারেন যে ব্যতিক্রম ব্যতিক্রম।

রিটার্ন কোডগুলির জন্য, এটি একটি পোস্ট নোটটি পাস করুন।

ব্যতিক্রমগুলির জন্য, আপনার হাত বাতাসে নিক্ষেপ করুন এবং সমস্যাটি কী তা বলুন।

তারপরে তাদের "ক্যাচ এক্স, থ্রো এক্স" করতে এবং দেখুন জিইউআই "মডেলটির একটি ব্যতিক্রম ছিল" যা পেয়ে যায় তা রোগ নির্ণয়ের চেয়ে আরও খারাপ।

আমি মনে করি এটি আপনার লোকদের প্রশিক্ষণের জন্য কাজ করবে কারণ লোকেরা অন্য লোকের সাথে মিথস্ক্রিয়াটি বেশ ভালভাবে বোঝে।


ভূমিকা ভূমিকা আইডিয়া জন্য +1। আমরা এর আগে কখনও ভাবিনি। যে কেউ ভাবতে পারত রোলিং প্লেয়ের মাধ্যমে প্রোগ্রামিং করা যায়?
কানিনি

1

আমি উদাহরণস্বরূপ ক্লাসগুলির শিশু / পিতামাতার সম্পর্কটি বোঝার আগে আপনাকে ব্যতিক্রমগুলি বুঝতে আগ্রহী। যদি আপনি বুঝতে পারেন যে কোনও সন্তানের পিতা-মাতার কাছ থেকে কার্যকারিতা উত্তরাধিকারী হতে পারে তবে তারা প্রাথমিক স্তরে বুঝতে সক্ষম হবেন যে কোনও সন্তানের যদি সমস্যা হয় তবে এটি পরিচালনা করতে পারে না এটি এই সমস্যাটি (ব্যতিক্রম) তার পিতামাতার কাছে চলে যাবে এবং পিতামাতাকে চুক্তি করতে দেবে এর সাথে.

এটি এমন একটি শিকলযুক্ত সম্পর্ক হয়ে যায় যতক্ষণ না আপনি এমন কোনও জায়গা শেষ করেন যেখানে কিছু ব্যতিক্রম কীভাবে পরিচালনা করতে হয় তা জানে।

এবং যতদূর অবশেষে এটি তুচ্ছ অংশ ... যখন কোনও সমস্যা দেখা দেয় তখন কিছু হ্যান্ডল করতে হয় যাতে প্রোগ্রামটি মারাত্মকভাবে প্রস্থান করে না, ব্যতিক্রমটি হ্যান্ডেল করার পরে অবশেষে ব্লকটি থাকে যা চেষ্টা সর্বদা নির্বিশেষে কার্যকর করা হবে ।

নেটওয়ার্কিংয়ের সাথে এর একটি ভাল উদাহরণ হতে পারে:

  • আমরা সংযোগ করি
  • সংযোগ ঠিক আছে তাই আমরা এটি ব্যবহার করি
  • শেষ হয়ে গেলে আমরা বন্ধ এবং বিনামূল্যে সংস্থানগুলি

বা ব্যতিক্রম ক্ষেত্রে:

  • একটি সংযোগ তৈরি করুন
  • একটি ব্যতিক্রম ঘটে যা কিছু পরিচালনা করে
  • এই সময়ে আমরা সংযোগ এবং সম্পর্কিত সংস্থানগুলি মুক্ত করি

1

নবাবীকে একটি অ্যাপ্লিকেশন দিন যা এতে খুব ভাল এক্সেসপনেশন হ্যান্ডলিং করে। কিছু ব্যতিক্রম কোথাও নিক্ষেপ করুন এবং লগসের সহায়তায় এটিকে ডিবাগ করুন। ব্যতিক্রমের প্রস্তাবটি অনুসরণ করে তারা এটি ডিবাগ করতে সক্ষম হবে। এই অনুশীলনটি 3 বা 4 বার করুন। এখন কেবল কোড থেকে সমস্ত ব্যতিক্রম হ্যান্ডলিং সরান এবং তাদের একই ব্যতিক্রম ট্র্যাক করার চেষ্টা করুন।

আমার বিশ্বাস ব্যতিক্রম হ্যান্ডলিং কোডটির জন্য তাত্ক্ষণিকভাবে প্রশংসা করা হবে।


পরিকল্পনার মতো মনে হচ্ছে। আপনার কাছে কি এমন কোনও নমুনা কোড উপলব্ধ আছে যা ইন্টারনেটে (বলুন, সোর্সফোর্জ.নেট) আপনি প্রস্তাবিত করবেন?
কানিনি

0

আইএমও, আপনার মনে করা উচিত যে ব্যতিক্রম হ্যান্ডলিং এবং প্রবাহ নিয়ন্ত্রণের বিবৃতিগুলি মূলত এক। আপনার প্রোগ্রামগুলির প্রবাহ নিয়ন্ত্রণের জন্য আপনি তাদের ব্যবহার করুন বর্তমানে তারা কোন অবস্থাতে রয়েছে তার ভিত্তিতে The


@ এডনি: যদিও আমি "ব্যতিক্রম হ্যান্ডলিং কেবল তত্ক্ষণাত (বা ব্যতিক্রম) দেখা দিলে প্রতিক্রিয়া প্রকাশ করবে" এর সাথে একমত হয়েছি, তবে "ব্যতিক্রম হ্যান্ডলিং এবং প্রবাহ নিয়ন্ত্রণের বিবৃতি মূলত একই" এই বিবৃতি সম্পর্কে আমি যথেষ্ট নিশ্চিত নই। আমি শ্রদ্ধার সাথে সেখানে অসমত। ক্যাচ ব্লক স্বীকার করে নিচ্ছে যে এই অবস্থার অধীনে তার কী করা উচিত। চেষ্টা ব্লক প্রবাহ বা নিয়ন্ত্রণ মোটেও নয়। শেষ অবধি, আবার প্রবাহ বা নিয়ন্ত্রণ মোটেও নয়। হতে পারে, আমি আপনার উত্তরটি ভুল বুঝেছি, তবে আপনি কি আমার এবং অন্যের উপকারের জন্য পরিষ্কার করতে পারেন?
কানিনি

0

এটি সম্ভবত কোনও নতুন প্রোগ্রামারকে সহায়তা করবে না, তবে আমি আবিষ্কার করেছি যে আমি ক্রিয়ামূলক প্রোগ্রামিংয়ে স্নাতকের ব্যবহার শুরু করার পরে ব্যতিক্রমগুলির ধারণাটি আরও অনেক ভালভাবে বুঝতে পেরেছি। একটি মোনাড আপনাকে প্রতিটি "চ্যানেল" বিবেচনা করতে বাধ্য করে যার মাধ্যমে ডেটা কোনও প্রোগ্রামের মধ্যে বা বাইরে ভ্রমণ করতে পারে, যেহেতু এটি ডেটা প্রবাহকে কিছু "আড়াল" করতে একটি সুবিধাজনক বিমূর্ততা সরবরাহ করে।

কোনও ফাংশনের বিভিন্ন ধরণের আউটপুট থাকতে পারে এমন ধারণা এবং একটি ব্যতিক্রম ফাংশন থেকে উচ্চ-অগ্রাধিকারের রিটার্নের মতো সুন্দর সুন্দর is

মনে মনে, আমি বুঝতে পারি যে ব্যতিক্রমগুলি বেশিরভাগ ভাষায় কীভাবে কার্যকর হয় না (বাস্তবায়নের বিশদ), তবে একটি বিমূর্ত অর্থে এটি ঘটছে।


0

ভান করুন কোনও বানর কীবোর্ডটি ব্যবহার করছে

আমি আমার ছেলেরা যখন কোড লিখছি তখন তাদের বলতাম যে কোনও বানর কীবোর্ডে বসে এই অ্যাপ্লিকেশনটি ব্যবহার করবে।

এটি তাদেরকে শিখিয়েছিল যে কীভাবে সমস্ত ধরণের জিনিস প্রত্যাশা করা যায়:

  • অনুপস্থিত তথ্য
  • হারিয়ে যাওয়া ফাইল
  • আপনি সংখ্যা প্রত্যাশা যখন আলফা অক্ষর
  • শূন্য দ্বারা বিভাগ

আমি মনে করি এটি একটি বানরকে কী কীভাবে ঠাট্টা করা এবং যে কৌশলটি করেছে তা সুন্দরভাবে অনুসরণ করার পরিবর্তে যা কিছু করার তা করার চিত্রের চিত্র ছিল। এটা আমার জন্য কাজ করে।


বানর? আমি মনে করি, আপনার ব্যবসায়িক ব্যবহারকারীরা এটি কখনও শুনেনি ;-)
কানিনি

@ কণিনী - ভাল এটি আমার মেরিন কর্পস দিনগুলিতে ছিল। আমি কেবল চাইছিলাম যে আমার ছেলেরা যখন আটকে ত্রুটিযুক্ত হওয়ার বিষয়টি আসবে তখন বাক্সের বাইরে ভাবুক। আমি কি কেবল ত্রুটি আটকা পড়ে বলেছিলাম ... আমার ব্যতিক্রম হ্যান্ডলিংয়ের অর্থ।
মাইকেল রিলে - একে একে গনি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.