জাভা এবং .NET এ ব্যতিক্রম নিয়ে কাজ করার পরে এবং কীভাবে / কখন / কেন ব্যতিক্রমগুলি ধরা যায় সে সম্পর্কে প্রচুর নিবন্ধগুলি পড়ে, আমি যখনই কোনও সম্ভাব্য ব্যতিক্রম ঘটতে দেখি, তখন অবশেষে আমি নিম্নলিখিত পদক্ষেপগুলি নিয়ে আসি I ব্যতিক্রম আমাকে অবশ্যই (জাভা) ধরতে হবে ... এমনকি যদি এটি কখনও ঘটে না (দীর্ঘশ্বাস ...)। এবং মনে হচ্ছে এটি কাজ করছে, কমপক্ষে আমার জন্য:
- এই ব্যতিক্রমটির সাথে আমি কী করতে পারি দরকারী, (লগিং ব্যতীত)? যদি উত্তরটি হ্যাঁ হয় তবে কার্যবিধির কোডটি লিখুন এবং যদি কাজের বাকী ব্যতিক্রম ছুঁড়ে দিতে পারে তবে 2 এ যান:
- ব্যতিক্রমটি রানটাইম ব্যতিক্রমের চারদিকে लपेटুন, এটিকে নিক্ষেপ করুন, 3 এ যান।
- উচ্চ-স্তরের শ্রেণিতে যেখানে একটি সম্ভাব্য ডাটাবেস / প্রক্রিয়া লেনদেন শুরু হয়েছে, ব্যতিক্রমটি ধরুন, লেনদেনটি রোলব্যাক করুন, ব্যতিক্রমটি পুনরায় করুন।
- টপ লেভেল শ্রেণী (যা এক যেখানে লেনদেন সূচিত হয়েছে হতে পারে), একজন লগিং যেমন পরিকাঠামোকে ব্যবহার করে ব্যতিক্রম লগ ইন করুন slf4j (সঙ্গে মিলিত log4j উদাহরণস্বরূপ), বা log4net । সম্ভব হলে অ্যাপ্লিকেশন বিকাশকারীদের সমন্বয়ে এমন বিতরণ তালিকায় ব্যতিক্রমটিকে সরাসরি ইমেল করুন।
- যদি কোনও জিইউআই থাকে তবে সমস্যাটির কারণটি সবচেয়ে ব্যবহারকারী-বান্ধব উপায়ে ইঙ্গিত করে একটি ত্রুটি বার্তা প্রদর্শন করুন; ব্যতিক্রম / স্ট্যাকট্রেস প্রদর্শন করবেন না, ব্যবহারকারীর যত্ন নেই এবং এটি নালপয়েন্টার এক্সেকশন ছিল তা জানা দরকার নেই।
আমার 0 টি পদক্ষেপটিও যুক্ত করা উচিত , যেখানে আমি "ব্যবসায়" ব্যতিক্রম বলি যা আমি উদ্দেশ্যমূলকভাবে ফেলে দিচ্ছি ("ব্যতিক্রম" শ্রেণিটি প্রসারিত করে আমি একটি নতুন ব্যতিক্রম) যখন ডেটা ত্রুটির কারণে কিছু জটিল চিকিত্সা কার্যকর করা যায় না, তবে এটি তারা বিশ্লেষণের সময় ব্যতিক্রম মামলা হিসাবে চিহ্নিত হয়েছে বলে ঘটেছে বলে জানা যায়।
লগিং অংশ ব্যতীত আমি "মাইকেরা" দ্বারা লিখিত পয়েন্টগুলির সাথে পুরোপুরি একমত; আমি কেবল যুক্ত করব যে ব্যতিক্রমটি একবারে লগ করা উচিত ।
এছাড়াও, আমি যে পদক্ষেপগুলি তালিকাভুক্ত করছি সেগুলি পৃথক হতে পারে যদি আপনি যা লিখছেন তা কোনও এপিআই / ফ্রেমওয়ার্ক । সেখানে, বিকাশকারীদের তাদের ভুল বুঝতে সহায়তা করার জন্য ভালভাবে ডিজাইন করা ব্যতিক্রম ছুঁড়ে দেওয়া বাধ্যতামূলক।
ব্যতিক্রমগুলি পরীক্ষা করার ক্ষেত্রে, মক অবজেক্টগুলি ব্যবহার করে আপনার প্রায় সব কিছু পরীক্ষা করতে সক্ষম হওয়া উচিত, এটি ব্যতিক্রম হোক বা না হোক, আপনার ক্লাসগুলি "এক জিনিস করার জন্য একটি শ্রেণি" সেরা অনুশীলনকে সম্মান করে। আমি ব্যক্তিগতভাবে সর্বাধিক গুরুত্বপূর্ণ তবে লুকানো পদ্ধতিগুলিকে "ব্যক্তিগত" পরিবর্তে "সুরক্ষিত" হিসাবে চিহ্নিত করার বিষয়টি নিশ্চিত করেছি যাতে আমি খুব বেশি ঝামেলা ছাড়াই তাদের পরীক্ষা করতে পারি। তা ছাড়া, পরীক্ষাগুলি ব্যতিক্রমগুলি সহজ, কেবল ব্যতিক্রমকে উস্কে দিন এবং এটি ধরার মাধ্যমে একটি ব্যতিক্রম ঘটতে "প্রত্যাশা" করুন। আপনি যদি ব্যতিক্রম না পান তবে আপনার ইউনিট পরীক্ষার কেস ত্রুটি রয়েছে।