আমি নোট করেছি যে এই পুরানো প্রশ্নের তাদের উত্তরে কেউ উল্লেখ করেনি যে একটি ব্যতিক্রমকে তালাবদ্ধ করে দেওয়া একটি অবিশ্বাস্যরকম বিপজ্জনক কাজ। হ্যাঁ, সি # তে লক স্টেটমেন্টগুলিতে "অবশেষে" শব্দার্থবিজ্ঞান রয়েছে; যখন নিয়ন্ত্রণটি স্বাভাবিক বা অস্বাভাবিকভাবে লকটি থেকে বের হয়, তখন লকটি প্রকাশ হয়। আপনি সকলেই এ জাতীয় কথা বলছেন এটি ভাল জিনিস তবে এটি খারাপ জিনিস! যদি আপনার কাছে কোনও লকড অঞ্চল রয়েছে যা অবিবাহিত ব্যতিক্রম ছুঁড়েছে তবে সঠিক কাজটি হ'ল অসুস্থ প্রক্রিয়াটি আরও বেশি ব্যবহারকারীর ডেটা নষ্ট করার আগেই তা বন্ধ করে দেওয়া , লকটি মুক্ত না করে চালিয়ে যাওয়া ।
এইভাবে এটি দেখুন: মনে করুন আপনার কাছে একটি বাথরুম রয়েছে যাতে দরজায় একটি লক থাকে এবং বাইরে লোকদের একটি লাইন অপেক্ষা করে। বাথরুমে একটি বোমা বিস্ফোরিত হয়ে সেখানে থাকা ব্যক্তিকে হত্যা করেছে। আপনার প্রশ্নটি "এই পরিস্থিতিতে লকটি কী স্বয়ংক্রিয়ভাবে আনলক হয়ে যাবে যাতে পরবর্তী ব্যক্তি বাথরুমে প্রবেশ করতে পারেন?" হ্যা এটা হবে. এটা একটা ভাল জিনিস না। একটি বোমা সবেমাত্র সেখানে গিয়ে কাউকে হত্যা করেছিল! নদীর গভীরতানির্ণয়টি সম্ভবত ধ্বংস হয়ে গেছে, ঘরটি আর কাঠামোগতভাবে শক্ত নয়, এবং সেখানে আরও একটি বোমা থাকতে পারে । সঠিক কাজটি হ'ল সবাইকে যত তাড়াতাড়ি সম্ভব বের করে আনা এবং পুরো বাড়িটি ধ্বংস করা।
এর অর্থ, এর মাধ্যমে এটি ভাবুন: আপনি যদি কোনও ডাটা স্ট্রাক্ট থেকে অন্য থ্রেডে রূপান্তরিত না করে কোনও কোডের অঞ্চলটি পড়ার জন্য যদি কোডের একটি অঞ্চল লক করে থাকেন, এবং সেই তথ্য কাঠামোর কোনও কিছু ব্যতিক্রম ছুঁড়ে দেয় তবে প্রতিক্রিয়াটি ভাল কারণ এটি ডেটা কাঠামো কারণ দুর্নীতিগ্রস্থ । ব্যবহারকারীর ডেটা এখন অগোছালো; আপনি এই মুহুর্তে ব্যবহারকারীর ডেটা সংরক্ষণ করার চেষ্টা করতে চান না কারণ আপনি তখন দুর্নীতিগ্রস্ত ডেটা সংরক্ষণ করছেন । কেবল প্রক্রিয়াটি শেষ করুন।
আপনি যদি একই সময়ে রাষ্ট্রটি না পড়ে অন্য থ্রেড ছাড়াই কোনও মিউটেশন সম্পাদন করতে কোডের একটি অঞ্চল লক করে থাকেন এবং এই রূপান্তরটি ছুঁড়ে দেয়, তবে যদি ডেটা আগে দুর্নীতিগ্রস্থ না হয়, তবে এটি এখন নিশ্চিত । লকটি সুরক্ষিত হওয়ার মতো দৃশ্যটিই কোনটি । এখন যে কোডটি এই রাষ্ট্রটি পড়ার অপেক্ষায় রয়েছে তা অবিলম্বে দুর্নীতিগ্রস্থ অবস্থায় অ্যাক্সেস দেওয়া হবে এবং সম্ভবত এটি ক্রাশ হবে। আবার, সঠিক কাজটি প্রক্রিয়াটি শেষ করা।
আপনি এটি কীভাবে টুকরো টুকরো টুকরো টুকরো টুকরো না করে একটি লকের অভ্যন্তরে ব্যতিক্রম হ'ল খারাপ খবর । জিজ্ঞাসা করার জন্য সঠিক প্রশ্নটি নয় "ব্যতিক্রম ঘটলে আমার লকটি কি পরিষ্কার হয়ে যাবে?" জিজ্ঞাসা করার সঠিক প্রশ্নটি হ'ল "আমি কীভাবে তা নিশ্চিত করব যে কোনও তালার অভ্যন্তরে কখনই ব্যতিক্রম থাকবে না? এবং যদি সেখানে থাকে তবে আমি কীভাবে আমার প্রোগ্রামটি গঠন করব যাতে পরিবর্তনগুলি পূর্ববর্তী ভাল অবস্থানে ফিরে যায়?"