একটি "প্রথম সুযোগ ব্যতিক্রম" কি?


107

প্রথম সুযোগ ব্যতিক্রম ঠিক কি? NET প্রোগ্রামে এর উত্স কীভাবে এবং কোথায় পাওয়া যায়? এবং কেন এই অদ্ভুত নামে ডাকা হয় (আমরা কোন 'সুযোগ' বলছি)?

উত্তর:


80

এটি একটি ডিবাগিং ধারণা। মূলত ব্যতিক্রমগুলি প্রথমে ডিবাগারে এবং তারপরে প্রকৃত প্রোগ্রামে ফেলে দেওয়া হয় যেখানে এটি পরিচালনা না করা হলে এটি দ্বিতীয় বার ডিবাগারের কাছে ফেলে দেওয়া হয় , আপনাকে অ্যাপ্লিকেশনের আগে এবং পরে নিজের আইডিতে এটি দিয়ে কিছু করার সুযোগ দেয়। এটি মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও আবিষ্কার বলে মনে হচ্ছে।


21
এটি একটি ডিবাগিং ধারণার চেয়ে বেশি; সি # রান-টাইমে দ্বি-পাস ব্যতিক্রম হ্যান্ডলিং পর্যবেক্ষণের জন্য একটি সুবিধাজনক উপায় সরবরাহ করে না, তবে vb.net তা করে। মূলত, যখন কোনও ব্যতিক্রম ছুঁড়ে ফেলা হয় তখন রান-টাইমটি কল স্ট্যাক অনুসন্ধান করে শুরু করে যে কেউ এটি ধরতে চলেছে কিনা তা খুঁজে বার করতে শুরু করে। যে কোনও ব্লক চালানোর আগে এই প্রক্রিয়াটি ঘটে finally। একবার সিস্টেম সিদ্ধান্ত নিয়েছে কে কে ব্যতিক্রম ধরবে (এবং নির্ধারিত হয়েছে যে কেউ আসলে যাচ্ছেন), সিস্টেমটি স্ট্যাকটি আনওয়াইন্ড করা শুরু করবে। মনে রাখবেন যে কোনও ব্যতিক্রম যদি কোনও finallyব্লক থেকে ছুঁড়ে দেওয়া হয় ...
সুপারক্যাট

18
... যে কোডটি মূল ব্যতিক্রমটি ধরার প্রত্যাশা করেছিল তা না করেই শেষ হতে পারে; অনেক অদ্ভুত কোণার কেস আছে।
সুপারক্যাট

6
এটি তখন ঘটে যখন আপনি সমস্ত নিক্ষিপ্ত ব্যতিক্রমগুলি (কেবলমাত্র অপরিশোধিত ব্যতিক্রম নয়) ভাঙ্গতে ডিবাগারটি কনফিগার করেছেন বা যদি আপনি এমন কোনও বিবৃতিতে "পদক্ষেপ" ফেলে থাকেন যা ছুঁড়ে। আপনি বার্তাটি দেখতে পাচ্ছেন আপনার অ্যাপ.এক্সিতে 'foo' টাইপের প্রথম সুযোগের ব্যতিক্রম ঘটেছে । আপনি এখনও চালিয়ে যেতে পারেন (F5) বা আরও ধাপে (F11)। তারপরে যদি এর জন্য কিছু থাকে তবে catchনিয়ন্ত্রণ সেখানে যায়। যদি কোনও catchব্লক না থাকে, আপনি "দ্বিতীয়-সুযোগ" বিরতি পান, বার্তাটি হ'ল আপনার অ্যাপ.এক্সিতে 'foo' টাইপের একটি অপরিবর্তিত ব্যতিক্রম । এখান থেকে চালিয়ে যাওয়ার চেষ্টা করা বা আরও পদক্ষেপ নেওয়া সফল হবে না।
জেপ্পে স্টিগ নীলসেন

@ সুপের্যাট: উপরের মন্তব্যে আপনি উল্লিখিত মতামত সম্পর্কে আমি কীভাবে জানতে পারি? এটি কি স্ব-পরীক্ষার ফলাফল? বই পড়া (কোনটি)? এটি একটি খুব চিত্তাকর্ষক অন্তর্দৃষ্টি! আপনি যদি দয়া করে এর উত্তর দিতে কিছুটা সময় নিতে পারেন তবে আমি প্রশংসা করব ...
আনিস

4
@ নোসেইড দ্য কমপাইলার: আমি বিভিন্ন ব্লগে ব্যতিক্রম পরিচালনার বিষয়ে পড়েছি; আমি আশা করব যে "ব্যতিক্রম ফিল্টার। নেট" অনুসন্ধানের জন্য বিষয়টিতে কিছু ব্লগ তৈরি করা উচিত।
সুপারক্যাট

20

প্রথম সুযোগ ব্যতিক্রম বিজ্ঞপ্তি উত্থাপন যখন একটি ব্যতিক্রম নিক্ষেপ করা হয়। দ্বিতীয় সুযোগের বিজ্ঞপ্তিগুলি যখন এটি ধরা না থাকে are (সম্ভাবনা - ডিবাগের কোডটি ভাঙ্গার সুযোগ হিসাবে)।

প্রথম এবং দ্বিতীয় সুযোগের ব্যতিক্রম হ্যান্ডলিং


4

আমি সবেমাত্র ডিবাগারটি ব্যবহার শুরু করেছি এবং এটিতে ছুটে এসেছি। আমার গবেষণায়, আমি এমএসডিএন ব্লগ পোস্টটি পেয়েছি প্রথম সম্ভাবনার ব্যতিক্রম কী? এটি আমার জন্য এটি পরিষ্কার করে দিয়েছে।

আমার জন্য ব্লগ পোস্ট থেকে বড় গ্রহণযোগ্যতাগুলি হ'ল এটি ডিবাগারকে বিজ্ঞপ্তি নির্দেশ করে এবং আমার কোডটি হ্যান্ডেল করার জন্য প্রয়োজনীয় কিছু নয়, এবং সবচেয়ে গুরুত্বপূর্ণ, "প্রথম সুযোগ ব্যতিক্রম বার্তাগুলি প্রায়শই বোঝায় না যে এতে কোনও সমস্যা আছে the কোড


আপনি কী এই লিঙ্কটি থেকে সহায়ক বলে মনে করেছেন তার একটি অংশ ( পুরো নিবন্ধটি নয় ) রাখুন। মুছে ফেলা সেই একই লিঙ্কটির সাথে পূর্বের লিঙ্কটির উত্তর ছিল।
মার্ক হল

আমার কাছে বড় গ্রহণযোগ্যতা হ'ল এটি ডিবাগারের কাছে বিজ্ঞপ্তি বোঝায় এবং আমার কোডটি হ্যান্ডেল করার জন্য প্রয়োজনীয় কিছু নয় এবং সবচেয়ে বড় কথা, "প্রথম সুযোগ ব্যতিক্রম বার্তাগুলি প্রায়শই বোঝায় না যে কোডটিতে কোনও সমস্যা আছে।"
কোডিংএটি

আমি আপনার মন্তব্যে আপনার মন্তব্য যুক্ত করেছি, আমি মনে করি যে লিঙ্কটি প্রায় রাখার জন্য যথেষ্ট গুরুত্বপূর্ণ, আমি এটি চেষ্টা করার চেষ্টা করছি যে এটি আগের বারের মতো দেওয়া একটি লিঙ্কের উত্তর হিসাবে বিবেচিত হবে না।
মার্ক হল 4

0

যখন কোনও অ্যাপ্লিকেশন ডিবাগ করা হচ্ছে, যখনই কোনও ব্যতিক্রমের মুখোমুখি হয় তখনই ডিবাগারটি অবহিত হয়। এই মুহুর্তে, অ্যাপ্লিকেশনটি স্থগিত করা হয় এবং ডিবাগার কীভাবে ব্যতিক্রম পরিচালনা করবেন তা স্থির করে। এই প্রক্রিয়াটির মধ্য দিয়ে প্রথম পাসটিকে "প্রথম সুযোগ" ব্যতিক্রম বলা হয়।

ডিবাগারের কনফিগারেশনের উপর নির্ভর করে এটি হয় অ্যাপ্লিকেশনটি পুনরায় শুরু করবে এবং ব্যতিক্রমটি পাস করবে অথবা এটি অ্যাপ্লিকেশনটি স্থগিত রেখে ডিবাগ মোডে প্রবেশ করবে। যদি অ্যাপ্লিকেশন ব্যতিক্রম পরিচালনা করে তবে এটি স্বাভাবিকভাবে চলতে থাকে।

প্রথম সুযোগ ব্যতিক্রম বার্তাগুলির প্রায়শই অর্থ এই নয় যে কোডটিতে কোনও সমস্যা আছে। অ্যাপ্লিকেশন / উপাদানগুলির জন্য যা ব্যতিক্রম কৌতূহলীভাবে পরিচালনা করে, প্রথম সুযোগ ব্যতিক্রম বার্তাগুলি বিকাশকারীকে জানায় যে একটি ব্যতিক্রমী পরিস্থিতির মুখোমুখি হয়েছিল এবং পরিচালনা করা হয়েছিল।


0

বিকাশকারীর দৃষ্টিকোণ থেকে, এটি দ্বিতীয়-সুযোগ ব্যতিক্রম সম্পর্কিত আরও বেশি, কারণ এর অর্থ হবে এটি কোডে পরিচালিত হয়নি ; সুতরাং অ্যাপ্লিকেশন বন্ধ হবে।

প্রথম সুযোগ তাদের মধ্যে অনেকেরই হতে পারে তবে উন্নয়নের দৃষ্টিকোণ থেকে আরও একবারের বিষয়ে উদ্বিগ্ন হওয়াগুলি দ্বিতীয় সুযোগ, কারণ এটি অ্যাপ্লিকেশন ক্রাশের দিকে নিয়ে যায়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.