আমার মতে, ব্যর্থতা চালানোর সময় কোড ত্রুটি সনাক্ত করার জন্য একটি প্রয়োজনীয় সরঞ্জাম। উভয় পরীক্ষা এবং উত্পাদন। তাদের বার্তাগুলিকে যথেষ্ট পরিমাণে ভার্বোজ করুন যাতে স্ট্যাক ট্রেসের সাথে একত্রে আপনি লগ থেকে কী ঘটেছিল তা বুঝতে পারেন।
ব্যতিক্রমগুলি বেশিরভাগই একটি উন্নয়ন সরঞ্জাম এবং অপ্রত্যাশিত ক্ষেত্রে উত্পাদন থেকে যুক্তিসঙ্গত ত্রুটি প্রতিবেদন পাওয়ার উপায়।
উদ্বেগের বিচ্ছেদ ব্যতীত (কেবলমাত্র প্রত্যাশিত ত্রুটিগুলির সাথে শুভ পথ) অপ্রত্যাশিত ক্ষেত্রে এমনকি ত্রুটি হ্যান্ডলিং কোডের সাথে এটি পুষ্পিত করেও অপঠনযোগ্যতা সম্পূর্ণ।
এটি আসলে "অপ্রত্যাশিত" অর্থ।
বিটিডব্লু।, কী প্রত্যাশা করা হয় এবং কী নয় এটি এমন একটি সিদ্ধান্ত যা কেবলমাত্র কল সাইটে করা যায়। এ কারণেই জাভাতে চেক করা ব্যতিক্রমগুলি কার্যকর হয়নি - কোনও এপিআই বিকাশের সময় সিদ্ধান্ত নেওয়া হয়, যখন কী প্রত্যাশিত বা অপ্রত্যাশিত তা মোটেও পরিষ্কার নয়।
সাধারণ উদাহরণ: একটি হ্যাশ মানচিত্রের এপিআইতে দুটি পদ্ধতি থাকতে পারে:
Value get(Key)
এবং
Option<Value> getOption(key)
যদি খুঁজে না পাওয়া যায় তবে প্রথমটি ব্যতিক্রম। কিছু ক্ষেত্রে, দ্বিতীয়টি আরও বেশি বোঝায়, তবে অন্যদের ক্ষেত্রে আপনার কোডটি সুনির্দিষ্টভাবে একটি প্রদত্ত কীটির জন্য একটি মান হওয়ার আশা করতে পারে, সুতরাং যদি এটি না থাকে তবে এটি একটি ত্রুটি যা এই কোডটি ঠিক করতে পারে না কারণ একটি মৌলিক অনুমান ব্যর্থ হয়েছে। এই ক্ষেত্রে কোড ব্যর্থ হওয়ার ক্ষেত্রে কোড পাথ থেকে বেরিয়ে আসা এবং কিছু জেনেরিক হ্যান্ডলারের কাছে নেমে আসার কাঙ্ক্ষিত আচরণটি আসলে।
কোড ব্যর্থ মৌলিক অনুমানের সাথে মোকাবিলা করার চেষ্টা করা উচিত নয়।
অবশ্যই এগুলি পরীক্ষা করে এবং ভালভাবে পঠনযোগ্য ব্যতিক্রম ছোঁড়া ছাড়া অবশ্যই।
ব্যতিক্রম ছুঁড়ে ফেলা খারাপ নয় তবে সেগুলি ধরাও হতে পারে। অপ্রত্যাশিত ত্রুটিগুলি ঠিক করার চেষ্টা করবেন না। আপনি যেখানে কয়েকটি লুপ বা ক্রিয়াকলাপ চালিয়ে যেতে চান সেখানে ব্যতিক্রমগুলি ধরুন, তাদের লগ করুন, সম্ভবত কোনও অজানা ত্রুটির খবর দিন এবং এটিই।
সমস্ত জায়গায় ক্যাচ ব্লকগুলি খুব খারাপ ধারণা।
আপনার এপিআইগুলি এমনভাবে ডিজাইন করুন যাতে আপনার উদ্দেশ্যটি প্রকাশ করা সহজ হয়, অর্থাত্ আপনি কোনও নির্দিষ্ট কেস আশা করেন কি না, যেমন কী পাওয়া যায় নি বা না তা ঘোষণা করে। আপনার এপিআই এর ব্যবহারকারীরা কেবল সত্যই অপ্রত্যাশিত ক্ষেত্রে থ্রোং কল চয়ন করতে পারেন।
আমি অনুমান করি যে ত্রুটি পরিচালনার অটোমেশন এবং নতুন ভাষাগুলি থেকে উদ্বেগের আরও ভাল পৃথকীকরণের জন্য এই গুরুত্বপূর্ণ সরঞ্জামটি বাদ দিয়ে লোকেরা ব্যতিক্রমগুলি অস্বীকার করে এবং খুব বেশি দূরে চলে যাওয়ার কারণটি খারাপ অভিজ্ঞতা।
এটি, এবং তারা আসলে কী ভাল তা নিয়ে কিছু ভুল বোঝাবুঝি।
মোনাডিক বাইন্ডিংয়ের মাধ্যমে সমস্ত কিছু করে তাদের অনুকরণ করা আপনার কোডটি কম পঠনযোগ্য এবং রক্ষণাবেক্ষণযোগ্য করে তোলে এবং আপনি স্ট্যাক ট্রেস ছাড়াই শেষ করেন, যা এই পদ্ধতির উপায়টিকে আরও খারাপ করে তোলে।
প্রত্যাশিত ত্রুটি মামলার ক্ষেত্রে কার্যকরী শৈলীর ত্রুটি পরিচালনা পরিচালনা দুর্দান্ত।
ব্যতিক্রম হ্যান্ডলিং সমস্ত স্বয়ংক্রিয়ভাবে সমস্ত যত্ন নিতে দেওয়া যাক, এটি এর জন্য :)
panic
এটিকে অগ্রাহ্য করি যা একেবারে একই নয়। এছাড়াও সেখানে যা বলা হয়েছে, একটি ব্যতিক্রম একটি পরিশীলিত (তবে আরামদায়ক) উপায়টি সম্পাদন করার চেয়ে বেশি কিছু নয়GOTO
, যদিও স্পষ্টত কারণে কেউ তাকে সেভাবে ডাকে না।