আমি এর সংক্ষিপ্ত ব্যতিক্রমগুলির জন্য ডিজাইন নির্দেশিকাগুলি দিয়ে শুরু করব এবং এতে ডিও, ডু না এবং এভিড অন্তর্ভুক্ত রয়েছে। এটি এর কারণও দেয়।
আপনার উদাহরণস্বরূপ রিভেলভেন্ট বিভাগটি ব্যতিক্রম মোড়ানো হবে
এবং এটি এইভাবে লেখা হবে আশা করি। মনে রাখবেন যে এটি একটি নির্দিষ্ট ব্যতিক্রম ধরা পড়ে এবং তথ্য যুক্ত করার চেষ্টা করে যাতে আরও অর্থবহ বার্তা প্রচারিত হয়। এছাড়াও লক্ষ করুন যে লগিংয়ের উদ্দেশ্যে অভ্যন্তরীণ ব্যতিক্রম এখনও বজায় রয়েছে
//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");
সিকিউরিটিএক্সেপশন আরও খারাপ কারণ এটি নিক্ষেপ হওয়ার অন্যান্য কারণগুলির মধ্যে অন্য কোনও প্রক্রিয়াটিতে যদি একটি এক্সক্লুসিভ ফাইল লক ধরা পড়ে তবে আপনি ত্রুটিটি পাবেন না যতক্ষণ না আপনি এটি পড়ার জন্য খোলার চেষ্টা করেন কারণ ফাইল নেই। ক্যানিওপেনটিস () পদ্ধতি নেই। এবং যদি এ জাতীয় পদ্ধতি বিদ্যমান থাকে তবে আপনার এখনও ফাইল.এক্সজিস্টগুলির মতো একই সমস্যা রয়েছে