এখানে একটি স্ট্যান্ডার্ড দৃশ্য রয়েছে:
if(string.IsNullOrEmpty(Configuration.AppSettings["foobar"]))
throw new SomeStandardException("Application not configured correctly, bozo.");
সমস্যাটি হচ্ছে, কোনটি ব্যতিক্রম SomeStandardException
হওয়া উচিত তা আমি পুরোপুরি নিশ্চিত নই ।
আমি 3.5 ফ্রেমওয়ার্কটি উপলব্ধি করেছি এবং দুটি সম্ভাব্য প্রার্থী পেয়েছি: ConfigurationException
এবং ConfigurationErrorsException
।
System.Configuration.ConfigurationException
একটি কনফিগারেশন সিস্টেম ত্রুটি দেখা দিলে ছুঁড়ে দেওয়া ব্যতিক্রম।
মন্তব্য
ConfigurationException
যদি আবেদন প্রচেষ্টা পড়তে বা কনফিগারেশন ফাইল ডেটা লিখতে কিন্তু অসফল ব্যতিক্রম ফেলে দেওয়া হয়। এর কয়েকটি সম্ভাব্য কারণগুলির মধ্যে কনফিগারেশন ফাইলে ত্রুটিযুক্ত এক্সএমএল, ফাইল অনুমতি সংক্রান্ত সমস্যা এবং বৈধ নয় এমন মানগুলির সাথে কনফিগারেশন বৈশিষ্ট্য অন্তর্ভুক্ত থাকতে পারে।বিঃদ্রঃ:
ConfigurationException
বস্তুর অনগ্রসর সামঞ্জস্যের জন্য রক্ষা করা হয়।ConfigurationErrorsException
বস্তুর কনফিগারেশন সিস্টেমের জন্য এখান থেকে প্রতিস্থাপন করে।
এই ব্যতিক্রমটি আসলে আমার যা প্রয়োজন তার জন্য নিখুঁত মনে হয়, তবে এটি অপ্রচলিত হিসাবে চিহ্নিত হয়েছে, সুতরাং, আক্ষেপে ixnay।
এটি আমাদের পুরোপুরি ধাঁধা ConfigurationErrorsException
:
System.Configuration.ConfigurationErrorsException
বর্তমান মান সাফল্যমঞ্চের মানগুলির মধ্যে একটি নয়।
আপনি দেখতে পাচ্ছেন, এর ডকুমেন্টেশন পুরোপুরি অকেজো। (এটি স্থানীয় এবং অনলাইন সহায়তা উভয় ক্ষেত্রেই এইভাবে।) ক্লাসের নিজেই পরীক্ষা করে দেখা যায় যে আমি যা চাই তার জন্য এটি কঠোর ওভারকিল।
সংক্ষেপে, আমার একটি স্ট্যান্ডার্ড ব্যতিক্রম প্রয়োজন যা কোনও অ্যাপ্লিকেশন কনফিগারেশন সেটিংস অনুপস্থিত বা একটি অবৈধ মান থাকা অবস্থায় ছুঁড়ে ফেলা উচিত। আপনি ভাববেন যে অ্যাপ্লিকেশনগুলি ব্যবহারের জন্য ফ্রেমওয়ার্কটিতে এর মধ্যে একটি ব্যতিক্রম ছিল। (এটি স্পষ্টতই করেছিল, তবে এটি অপ্রচলিত হিসাবে চিহ্নিত হয়েছে এবং এর সুযোগে আরও বৃহত্তর কিছু দ্বারা প্রতিস্থাপিত হয়েছিল ))
কোন সমাধানগুলি, যদি কোনও হয় তবে আপনি ছেলেরা এটির জন্য ব্যবহার করছেন এবং আমি কি এটি চুষতে এবং এর জন্য আমার নিজের ব্যতিক্রম রোল করতে চলেছি?
অ্যাডেন্ডা সম্পাদনা করুন
কেউ কেউ জিজ্ঞাসা করেছেন যে আমি একটি ডিফল্ট মান সরবরাহ করতে পারি এবং না চালিয়ে যেতে পারি। নির্দিষ্ট কিছু ক্ষেত্রে, হ্যাঁ এবং সেই ক্ষেত্রে ব্যতিক্রম ছুঁড়ে দেওয়া হবে না। যাইহোক, নির্দিষ্ট সেটিংসের জন্য, এটি প্রযোজ্য হবে না। উদাহরণস্বরূপ: ডাটাবেস সার্ভারের নাম এবং শংসাপত্র, প্রমাণীকরণের সার্ভার এবং তৃতীয় পক্ষের অ্যাপ্লিকেশন ইনস্টল করার পাথ।
এটিও লক্ষণীয় যে আমি যে অ্যাপ্লিকেশনটিতে প্রাথমিকভাবে কাজ করছি তা হ'ল ব্যাচ মোডে চলমান একটি কনসোল অ্যাপ্লিকেশন এবং আমি চাই এটি একটি ব্যতিক্রম ছুঁড়ে ফেলুক যা মূল পদ্ধতির দ্বারা ধরা হয়েছে এবং জিনিসটি যথাযথভাবে কনফিগার না করা থাকলে উপযুক্তভাবে লগইন করা উচিত। (এটি উত্তরাধিকারসূত্রে প্রাপ্ত উত্তরাধিকারী কোডটি এবং বর্তমানে কেবল সমস্ত কিছুর ধারণা ধরেছে))
System.Configuration.ConfigurationErrorsException
আপডেট করা হয়েছে।