চ্যানেল বিহীন ব্যতিক্রমগুলি ভিজুয়াল স্টুডিও 2015 বিরতি কাজ করছে না


114

ভিজুয়াল স্টুডিওতে "আন-হ্যান্ডেল করা ব্যতিক্রম বিরতি" এর জন্য একটি নির্দিষ্ট চেকবক্স থাকত। ২০১৫ সালে এটি সরানো হয়েছে (বা কোথাও সরিয়ে নিয়েছি এটি আমি খুঁজে পাচ্ছি না) সুতরাং এখন আমি রূপান্তরিত প্রকল্পগুলি আর ভাঙ্গি না যদি আমি কোনও ব্যবহারকারী-স্তরের ব্যতিক্রম হ্যান্ডলার সরবরাহ করতে ব্যর্থ হই। আমি সমস্ত "নিক্ষিপ্ত ব্যতিক্রম" ভাঙতে চাই না কারণ আমি নির্দিষ্টগুলি পরিচালনা করি। ঠিক যেখানে আমি একটি নির্দিষ্ট হ্যান্ডলার সরবরাহ করতে ব্যর্থ।

এখনই আমার কোডটি সহজভাবে বর্তমান পদ্ধতিটি থেকে বেরিয়ে আসে এবং পরবর্তী কল স্ট্যাকের স্থানে কার্যকর হয় না, ভাল নয়।

যে কেউ ভিজুয়াল স্টুডিও 2015 এ এটি কীভাবে ফিরে আসবে জানেন? আমি গতকাল মাত্র সম্প্রদায়ের সংস্করণে আপগ্রেড করেছি।


ভিজ্যুয়াল স্টুডিও 2015 আপনার পূর্ববর্তী সংস্করণ থেকে বর্তমান লেআউটটি রক্ষা করবে, এটি Toolবা Windowট্যাবটি না থাকলে সমস্ত পছন্দসই অবস্থান থাকতে পারে। আপনার ক্ষেত্রে আপনার ব্যতিক্রম সেটিংস অনুসন্ধান করা
গ্রেগ

4
@ গ্রেগ, আমি জানি না যে প্যানেলটি কোথায় খুঁজে পাব। আমার উদ্বেগ হ'ল আমি যে আচরণটি সন্ধান করছি তা সেই প্যানেলে নেই।
টেড লোয়ার

এখানে একই সমস্যা। আমাদের ক্ষেত্রে আমরা একটি ব্যতিক্রম বিরতি আশা করি যখন অটোফ্যাকের সমস্ত ধরণের নিবন্ধিত না থাকে। Vs2013 এর সাথে একই সমাধানটি ব্যবহার করে এটি কাজ করে, vs2015 এ আমরা কিছুই পাই না। এই অন্যান্য তৃতীয় পক্ষের নিবন্ধীকরণের এবং ব্যতিক্রমগুলি (nservicebus মত) .আমি আশ্চর্য কোন সমস্যা নয় থাকেন তাহলে সেটি শুধুমাত্র vs2015 মধ্যে vs2013 এবং দৌড়ে তৈরি প্রকল্পের ক্ষেত্রে দেখা যায়
চোকো স্মিথ

3
নতুন সরঞ্জামটির উইন্ডোটি সত্যই সফল হয়।
সিড করুন

ব্যতিক্রমগুলির এমএস ক্লাসিফিকেশন অনুসারে যদি আপনার হাতছাড়া করা ব্যতিক্রম থাকে তবে এটি সর্বদা ডিবাগারটি ভেঙে দেয়। হতে পারে আপনাকে "বিকল্পগুলি -> ডিবাগিং -> সাধারণ" তালিকার "ব্রেকড এক্সপ্ল্যাশনস অ্যাপডোমেন ..." পেরিয়ে যাওয়ার বিকল্পটি পরীক্ষা করতে হবে।
tsul

উত্তর:


118

"এক্সেপশন সেটিংস" নামে একটি নতুন উইন্ডো রয়েছে যা আপনি ডিবাগিং শুরু করার সাথে সাথে ডিফল্টরূপে নীচের ডানদিকে প্রদর্শিত হবে। এতে আপনারা আশা করবেন এমন সমস্ত বিকল্প রয়েছে।

আপনি এটা আপ আনতে পারেন CTRL+ + ALT+ +E

এটি আপনাকে চেরি-বাছাই করতে দেয় যা ব্যতিক্রমগুলি ডিবাগারে বিরতি সৃষ্টি করে।

মূল কথাটি হ'ল এই ব্যতিক্রমগুলি সর্বদা ভেঙে যায়, বা কেবল যখন বিরতিহীন ব্যতিক্রম হয় কেবল তখনই ভেঙে যায় তা আপনি সেট করতে পারেন - তবে এটি নির্ধারণ করা খুব স্বজ্ঞাত নয়।

আপনাকে প্রথমে সরঞ্জামগুলি> বিকল্পগুলি> ডিবাগিংয়ের আওতায় "কেবলমাত্র আমার কোড সক্ষম করুন" চেক করতে হবে।

এর পরে এটি আপনাকে নতুন ব্যতিক্রমী সেটিংস উইন্ডোতে কলামের শিরোনাম (ব্রেক যখন নিক্ষেপ করা হবে) ডান-ক্লিক করতে এবং "অতিরিক্ত ক্রিয়াকলাপগুলি" কলাম যুক্ত করতে দেয়, যা আপনাকে প্রতিটি ব্যতিক্রম "ব্যবহারকারী কোডে অনড়হীন" হিসাবে সেট করার অনুমতি দেয়।

সুতরাং কেবলমাত্র একটি ব্যতিক্রম বা সম্পূর্ণ গোষ্ঠীটিতে ডান-ক্লিক করুন এবং "ব্যবহারকারীর কোডে যখন হাতছাড়া করবেন না" পতাকাটি অক্ষম করুন। দুর্ভাগ্যক্রমে, "অতিরিক্ত ক্রিয়াগুলি" কলামটি খালি প্রদর্শিত হবে যা "ব্যবহারকারীর কোডে আনহ্যান্ডল করা না হলে বিরতি" এর সমান।

এখানে চিত্র বর্ণনা লিখুন

এখানে আরও:

http://blogs.msdn.com/b/visualstudioalm/archive/2015/02/23/the-new-exception-settings-window-in-visual-studio-2015.aspx


7
আসলে সেই উইন্ডোটিতে কেবল "বিরতি দিয়ে নিক্ষেপ" করার বিকল্প রয়েছে। এটা আমি চাই না। আমি "বিরতিহীন যখন বিরতি" চাই।
টেড লোয়ার

17
এবং এটাই সমস্যা. এটি ভেঙে না যেমন আমি উপরে বলেছি, এটি বর্তমান পদ্ধতি কল থেকে প্রস্থান (পদক্ষেপে) বেরিয়ে আসে এবং কেবল কলিং পদ্ধতিতে পরবর্তী লাইন কোডটি সম্পাদন শুরু করে।
টেড লোয়ার

2
এবং আমি "জাস্ট মাই কোড" সক্ষম করেছি।
টেড লোয়ার

19
@ টমস্টুডি আমারও একই সমস্যা আছে। আমি যা চাই তা হ'ল "যখন বিরতিহীন হয়ে যাও" তবে যা পাই তা "ব্রেক যখন নিক্ষেপ করা হয়"। প্রশ্নটি হল: "ব্রেকহাল যখন আনহ্যান্ডেল" কীভাবে পাবেন?
oggre

1
@ টমস্টুডি আমি কেবলমাত্র খুব প্রয়োজনীয় স্পষ্টতা যুক্ত করেছি, কারণ আপনি কী সেটিংটি অনুপস্থিত ছিলেন যা আপনাকে কেবল ব্যস্ত না হলেই বিরতিতে ব্যতিক্রমগুলি সেট করতে দেয়।
জেরাদ রোজ

36

আমারও একই সমস্যা ছিল এবং আমি এটি করে এটি সমাধান করতে পেরেছি -

  1. প্রেস Ctrl+ + Alt+ + eআনতে ব্যতিক্রম সেটিং উইন্ডো।
  2. প্রচলিত ভাষা রানটাইম ব্যতিক্রমগুলি টিক দিন । এখানে চিত্র বর্ণনা লিখুন

এটাই!

আমি এই পোস্টটি অনুপ্রাণিত করেছি যেহেতু আমি উইন্ডোজের একটি x64 সংস্করণ ব্যবহার করছি ।


7
এটি ব্যবহারকারীর কোড দ্বারা পরিচালিত সমস্ত ব্যতিক্রম এমনকি এমনকি ব্যতিক্রমগুলিকেও ভেঙে ফেলবে।
carlin.scott

1
@ কার্লিন.স্কট, আমি বিশ্বাস করি যে তালিকা থেকে পরিচালনা করা ব্যতিক্রমগুলি আপনি ম্যানুয়ালি চেক করতে পারেন।
জাস্টিন এক্সএল

6
@ জাস্টিনএক্সএল সমস্যাটি হ'ল এটি ব্যতিক্রম প্রকারের তালিকা, এটি পরিচালনা করা হয়েছে কি না তা নয়। উদাহরণস্বরূপ, এমন সময় রয়েছে যখন System.ArgumentExceptionপরিচালনা করা হয় এবং কখন কখন তা করা হয় না। আমি যখন কেবল এটি পরিচালনা না করে তখনই ভাঙ্গার বিষয়ে চিন্তা করি ।
জেরাদ রোজ

1
@ জেরাদরোজ কোনও ব্যতিক্রমহীন হাতছাড়া হয়ে গেলে ডিবাগারটি সর্বদা ভঙ্গ হবে। সুতরাং আমি যেমন বলেছি, আপনি যদি হ্যান্ডেল করা ব্যতিক্রমগুলিতে কোনও বিরতি না চান, কেবল বিরতি যখন নিক্ষিপ্ত তালিকা থেকে সেই ব্যতিক্রম প্রকারটি নির্বাচন করুন
জাস্টিন এক্সএল

এমনকি সমস্ত কিছু যাচাই করার পরেও এটি ব্যতিক্রম নয়: / সবেমাত্র প্রস্থান করা হচ্ছে
ডগলাস গ্যাসকেল

10

গুগলারের জন্য যা কেবল তখনই বিরতিতে চায় যখন ব্যতিক্রমগুলি তাদের কোড নিয়ে উদ্বেগ প্রকাশ করে, ভিজ্যুয়াল স্টুডিও 2015-তে একটি বিকল্প রয়েছে: বিকল্প-> ডিবাগিং-> সাধারণ-> কেবল আমার কোড। একবার চেক করা হয়ে গেলে, ব্যতিক্রমগুলি আপনার কোডের বাইরে পরিচালিত হয়ে (নিক্ষিপ্ত এবং ক্যাচ করা হয়) ভাঙতে দেয় না।


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

9

মাইক্রোসফ্ট নতুন ব্যতিক্রম উইন্ডোতে সূক্ষ্মভাবে যুক্তি পরিবর্তন করেছে।

Http://blogs.msdn.com/b/visualstudioalm/archive/2015/02/23/the-new-exception-settings-window-in-visual-studio-2015.aspx দেখুন

মূল অংশ হচ্ছে:

গুরুত্বপূর্ণ নোট

  • এই নতুন উইন্ডোতে পুরানো মডেল ডায়ালগের মতো একই কার্যকারিতা রয়েছে। ডিবাগরের কোনও দক্ষতা কেবল আপনি সেগুলিতে অ্যাক্সেস করতে পারে এমনভাবে পরিবর্তন করেনি
  • কোনও ব্যতিক্রমহীন হাতছাড়া হয়ে গেলে ডিবাগারটি সর্বদা ভঙ্গ হবে
  • ব্যবহারকারী-অবিশ্রিত ব্যতিক্রমগুলিতে ডিবাগার ব্রেক হলে সেটিংস পরিবর্তন করার জন্য সেটিংস একটি প্রসঙ্গ মেনুতে সরানো হয়েছে
  • মেনু অবস্থানটি ডিবাগ -> উইন্ডোজ -> ব্যতিক্রম সেটিংসে চলে গেছে

তবে , আমার মতো যদি আপনার কোডটিতে একটি গ্লোবাল আনহ্যান্ডলড এক্সসেপশন হ্যান্ডলার থাকে তবে সেই তালিকার দ্বিতীয় আইটেমটি কী: আমার জন্য, কোনও ব্যতিক্রম তাই সত্যই নিরপেক্ষ হবে না, যা ভিএস ২০১৩ থেকে আলাদা বলে মনে হয়।

যেখানে নিয়ন্ত্রণহীন ব্যতিক্রমগুলিতে ভিএস ব্রেক করে সেই আচরণটি ফিরে পেতে, আমাকে যে ব্যতিক্রমগুলি ভেঙে যেতে চেয়েছিল তার সবগুলি টিক দিয়েছিলাম এবং দ্বিতীয়ত "অতিরিক্ত বিকল্পগুলি" (আপনার এই কলামটি দৃশ্যমান করার প্রয়োজন হতে পারে *) "চালিয়ে যাওয়ার জন্য নিশ্চিত করতে হয়েছিল" যখন ব্যবহারকারী কোডে Unhandled "ছিল না করে। ভিএস2015 যুক্তিটি আমার গ্লোবাল আনহ্যান্ডল ব্যতিক্রম হ্যান্ডলারটিকে "ব্যবহারকারীর কোডে পরিচালিত" হিসাবে বিবেচনা করবে বলে মনে হয় না , সুতরাং এটি এগুলি ভেঙে দেয়; যদিও এটি ধরা ব্যতিক্রমগুলি ভাঙে না। এটি এটি ভিএস ২০১৩ এর মতো কাজ করে।

* কীভাবে "অতিরিক্ত ক্রিয়াগুলি" কলামটি সক্ষম করবেন enable * কীভাবে "অতিরিক্ত ক্রিয়াগুলি" কলামটি সক্ষম করবেন enable


2
এটি ঠিক ভিএস ২০১৩ এর মতো কাজ করে না কারণ এটি আপনার প্রস্তাবিত সেটিংসের সাথে ব্যবহারকারীর দ্বারা পরিচালিত ব্যতিক্রমগুলি ভেঙে যাবে যা অতীতে ছিল না।
carlin.scott

আপনি কীভাবে "অতিরিক্ত বিকল্পগুলি" কলামটি দৃশ্যমান করবেন?
UuDdLrLrSs

@ ডেভইনকাজ কলাম শিরোনামে ডান ক্লিক করুন> "কলামগুলি দেখান"> "অতিরিক্ত ক্রিয়াগুলি"
ওটসোদা

7

আমি যদি এখানে লাইনগুলির মধ্যে সঠিকভাবে পড়ছি, তবে সমস্যাটি হ'ল আপনার ব্যতিক্রম কার্যকরভাবে 'অদৃশ্য হয়ে যাবে' যদিও ডিফল্ট ডিবাগারের আচরণটি হাতছাড়া হওয়া ব্যতিক্রমগুলির উপর ভেঙে যেতে পারে।

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

উদাহরণস্বরূপ, এই কোডটি একবার দেখুন:

class Program
{
    static void Main(string[] args)
    {
        Test();
        Console.ReadLine();
    }

    private async static Task Test()
    {
        await Task.Delay(100);
        throw new Exception("Exception!");
    }
}

আপনি যদি এই প্রোগ্রামটি ডিফল্ট ডিবাগার সেটিংস দিয়ে চালান (কেবলমাত্র অপরিশোধিত ব্যতিক্রমগুলি থামান), তবে ডিবাগারটি ভাঙ্গবে না। এটি কারণ ধারাবাহিকতায় বরাদ্দ করা থ্রেড পুল থ্রেড ব্যতিক্রমটিকে গ্রাস করে (এটি টাস্কের উদাহরণে পাস করে) এবং পুলটিতে আবার মুক্তি দেয়।

মনে রাখবেন যে, এই ক্ষেত্রে আসল সমস্যাটি হ'ল Taskপ্রত্যাবর্তিত Test()কখনই পরীক্ষা করা হয় না। আপনার কোডে যদি একই ধরণের 'ফায়ার-এন্ড-ভুলে' যুক্তি থাকে তবে তা নিক্ষেপ করার সময় আপনি ব্যতিক্রমগুলি দেখতে পাবেন না (এমনকি তারা পদ্ধতির অভ্যন্তরে 'নিয়ন্ত্রণহীন' হলেও); ব্যতিক্রমটি কেবল তখনই প্রদর্শিত হয় যখন আপনি টাস্কটির জন্য অপেক্ষা করে, এর ফলাফলগুলি পরীক্ষা করে বা স্পষ্টভাবে তার ব্যতিক্রমটি দেখে পর্যবেক্ষণ করে।

এটি কেবল অনুমান, তবে আমি মনে করি সম্ভবত আপনি এটির মতো কিছু পর্যবেক্ষণ করছেন।


যদিও এটি অপের ইস্যুটির সাথে সম্পর্কিত নয়, এটি অ্যাসিঙ্ক রুটিনে উত্থাপিত ব্যতিক্রম সম্পর্কে খুব ভাল পয়েন্ট তুলে ধরে।
ফিল কুপার

ব্যতিক্রমটি সঞ্চিত থাকলেও ডিবাগারটি থামানোর কোনও উপায় আছে কি?
লুকাস

@ লুকাস, এটি সম্পর্কে আমি অবগত নই, যদিও আপনি কিছু কোড পরিবর্তন করে ঘনিষ্ঠ হতে পারেন। যদি আপনার ফায়ার অ্যান্ড ভুলে যাওয়া পদ্ধতির শরীরে ট্রাই-ক্যাচ ব্লক থাকে তবে আপনি একটি সুস্পষ্ট Debugger.Break()কল যুক্ত করতে পারেন । পর্যায়ক্রমে, আপনি হ্যান্ডলারের Debugger.Break()মধ্যে একটি স্পষ্ট যোগ করতে পারেন TaskScheduler.UnobservedTaskException, যদিও এখানে ডাউনসাইডটি হ'ল এটি মূল ব্যতিক্রমের চেয়ে অনেক পরে গুলি চালাতে পারে, যেমন টাস্কটি পরিষ্কার হয়ে যাওয়ার পরে এটি ফাইনালাইজার থ্রেডে ঘটে। সাধারণভাবে আপনার সর্বদা কার্য ফলাফলগুলি পর্যবেক্ষণ করার চেষ্টা করা উচিত বা ব্যর্থতার সময়ে লগ ইন করার জন্য কমপক্ষে একটি ট্রাই-ক্যাচ ব্লক থাকা উচিত।
ড্যান ব্রায়ান্ট

3

আমার অভিজ্ঞতায় 2015 এর ব্যতিক্রম সেটিংস পুরোপুরি নষ্ট হয়ে যাবে যদি আপনি কিছু পরিবর্তন করেন।

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

সমাধান: নতুন ব্যতিক্রম সেটিংস সরঞ্জাম বাক্সে ডান-ক্লিক করুন এবং "পুনরুদ্ধার ডিফল্ট" চয়ন করুন। তদাআআআ ... এটি আবার স্বাভাবিকভাবে আচরণ করে। এখন এটি দিয়ে স্ক্রু করবেন না।


1

নির্দেশাবলী অনুসরণ চেষ্টা করুন:

  1. ব্যতিক্রম সেটিংস উইন্ডোতে, উইন্ডোতে ডান-ক্লিক করে প্রবন্ধ মেনু খুলুন এবং তারপরে কলামগুলি দেখান নির্বাচন করুন। (আপনি যদি কেবল আমার কোডটি বন্ধ করে থাকেন তবে আপনি এই আদেশটি দেখতে পাবেন না))
  2. আপনার অতিরিক্ত ক্রিয়া নামে একটি দ্বিতীয় কলামটি দেখতে হবে। নির্দিষ্ট ব্যাতিক্রমের ক্ষেত্রে ব্যবহারকারী কোড দ্বারা অযাচিত যখন এই কলামটি চালিয়ে যায়, অর্থাত্ যদি সেই ব্যতিক্রমটি ব্যবহারকারী কোডে না পরিচালিত হয় তবে বাহ্যিক কোডে পরিচালিত হয় তবে ডিবাগারটি ভেঙে যায় না।
  3. আপনি কোনও নির্দিষ্ট ব্যতিক্রম (এই ব্যতিক্রমটি নির্বাচন করুন, ডান-ক্লিক করুন, এবং ব্যবহারকারী কোডে আনহ্যান্ডলড থাকা অবস্থায় অবিরত নির্বাচন করুন) নির্বাচন করুন বা সম্পূর্ণ বিভাগে ব্যতিক্রম (উদাহরণস্বরূপ, সমস্ত প্রচলিত ভাষা রানটাইম ব্যতিক্রম) এর জন্য আপনি এই সেটিংটি পরিবর্তন করতে পারেন।

https://msdn.microsoft.com/en-us/library/x85tt0dd.aspx


সম্পূর্ণভাবে একমত. এই কলামটি ডিফল্টরূপে না দেখানো অত্যন্ত খারাপ। এটি খুঁজে পেতে অনেক সময় ব্যয় করেছেন। পাশে, " ব্যবহারকারী আনহ্যান্ডেল ব্যতিক্রম " এর অর্থ কী তা অস্পষ্ট। আমার একটি টাস্ক বাতিলকরণের মতো হ্যান্ডলারটি ছিল (যেমন কিছু হবে try { task.Wait(); } catch { ... }) এবং টাস্কে অপারেশনসেনসেলড এক্সসেপশনটি কোনওভাবে ব্যবহারকারীর কোডে আনহ্যান্ডল হিসাবে বিবেচিত হত।
tsul

1

এটি কিছুটা বিভ্রান্তিকর, এবং আমার মতে পুরানো ব্যতিক্রম সংলাপের মতো ভাল নয় তবে যাই হোক।

যদি কোনও ব্যতিক্রম তালিকায় থাকে এবং টিক দেওয়া থাকে তবে যখনই ব্যতিক্রম নিক্ষেপ করা হয় তখন ডিবাগারটি ভেঙে যায়।

যদি কোনও ব্যতিক্রম তালিকায় না থাকে বা তালিকায় না থাকে তবে ডিবাগটি কেবল তখনই ভেঙে যাবে যখন সেই ব্যতিক্রম প্রকারটি ব্যবহারকারীকে হাতছাড়া না করে।

উদাহরণস্বরূপ, নীচের স্ক্রিনশটে, যখনই কোনও System.AccessViolationExceptionনিক্ষেপ করা হবে তখন ডিবাগারটি ভেঙে যাবে , তবে অন্যান্য ব্যতিক্রমগুলির ক্ষেত্রে ব্যতিক্রমটি কেবল ব্যবহারকারীদের হাতে না থাকলেই কেবল এটি ভেঙে যাবে।

ভিজ্যুয়াল স্টুডিও 2015 ব্যতিক্রম সরঞ্জাম উইন্ডো


1

আমি যখন ভিএস ২০১৫ এ আপগ্রেড করেছি তখন আমারও এমন সমস্যা ছিল যেখানে ব্যতিক্রমগুলি অ্যাপ্লিকেশনটিকে "ব্রেক" করতে ব্যবহৃত হত তবে এখন তা উপেক্ষা করা হয় এবং ঠিক পাশ দিয়ে যায়। বার যখন আমরা আমাদের কোড চান আছে ইচ্ছাকৃতভাবে স্থানে ব্যতিক্রম নিক্ষেপ কোথায় গিয়ে থামতে কোড চাই, বদলে অবিরত। আমরা Throw New Exception("Message")আমাদের কোডটি ইচ্ছাকৃতভাবে ব্রেক করতে সর্বদা বাক্যাংশটি ব্যবহার করি :

    If SomethingReallyBad = True Then
        Throw New Exception("Something Really Bad happened and we cannot continue.")
    End If

ভিএস ২০১৫ এর সাথে ক্লাসিক "সিস্টেম.এক্সেপশন" হ'ল আমরা যখন বলি তখন ছুড়ে দেওয়া হয় Throw New Exception। অতএব, আমাদের নতুন ব্যতিক্রমী সেটিংসে "System.Exception" টিকটি পরীক্ষা করা দরকার:

সিস্টেম.এক্সেপশন বক্সটি দেখুন

একবার চেক হয়ে গেলে, আমাদের কোডটি প্রত্যাশা অনুযায়ী করেছিল।


1

এর সমাধানটি হ'ল শব্দার্থভাবে আপনি যেটি সেট করছেন তার বিপরীত। আপনি তা নিশ্চিত করার জন্য প্রয়োজন তখন ব্যবহারকারী কোডে Unhandled চালিয়ে হয় সক্ষম করা অর্থাত চেক করা যেমন অধীনে দেখানো অতিরিক্ত পদক্ষেপ কলাম ব্যতিক্রম সেটিংস ট্যাব - নীচে দেখুন:

আপনি কার্যকরভাবে বলছেন কোডে আনহ্যান্ডেল করা অবিরত করবেন না (অর্থাত্ ব্রেক)

ব্যতিক্রম সেটিংস উইন্ডো (নিয়ন্ত্রণ + Alt + ই)

এটা করতে:

  1. আপনার যত্ন নেওয়া ব্যতিক্রম বা ব্যতিক্রমগুলির সেটগুলিতে ডান ক্লিক করুন (যেমন গাছের মধ্যে সাধারণত শীর্ষ লাইন 'প্রচলিত ভাষা রানটাইম ব্যতিক্রম')
  2. ব্যবহারকারী কোডে আনহ্যান্ডেল করা অবিরত বিকল্পটি নির্বাচন করুন (নীচে দেখুন)
  3. নিশ্চিত হয়ে নিন যে ব্যতিক্রমগুলি চেক করা হয়নি (নীচে দেখুন)
  4. ডিবাগিং চালিয়ে যান

এখানে চিত্র বর্ণনা লিখুন

এটা আমার জন্য এটি - আবার খুশি।

এটি ভিএস ২০১৫ সালে ছিল


0

ভিজ্যুয়াল স্টুডিওতে অবশ্যই কিছু বাগ রয়েছে যা এটি পুনরায় আরম্ভের জন্য প্রয়োজনীয় আটকে যেতে পারে। এমনকি ভিএস ২০১৫।

আমার একক থ্রেডড পরিস্থিতি NullReferenceExceptionছিল যেখানে একজন 'বাহ্যিক' হ্যান্ডলার (এখনও আমার কোডে) ধরা পড়েছিল, যদিও আমি এটি উত্থাপিত হওয়ার পরে তা ভাঙ্গার জন্য বলেছিলাম।

আমি বুঝতে পেরেছি যে এটি একটি 'পরিচালিত' ব্যতিক্রম এবং আপনি একটি 'নিয়ন্ত্রণহীন' একের সাথে কথা বলছেন - তবে আমি দৃ sure়ভাবে নিশ্চিত যে কখনও কখনও ভিএস-এর একটি দ্রুত পুনঃসূচনা এটি ঠিক করে দেবে, যদি আইস্রেসেট এটি না করে।


0

ভিজ্যুয়াল স্টুডিও 2017 ত্রুটি পরিচালনার সাথে ঠিক কাজ করে। অন্যদিকে ভিজ্যুয়াল স্টুডিও 2015 টি তাসের সাথে তদারক করার ক্ষেত্রে ত্রুটিযুক্ত হয়েছে কারণ ডিবাগ মোডে একটি অ্যাসিঙ্ক টাস্কে ঘটে যাওয়া সমস্ত ব্যতিক্রম ধরা পড়ে তবে আমি যদি এটির উপরে পদক্ষেপ নিই তবে কেবল অনির্দিষ্ট সময়ের জন্য স্তব্ধ হয়ে যায়। যদি ডিবাগিং না করে মৃত্যুদণ্ড কার্যকর করা হয় তবে এটি কোনও ব্যতিক্রম ধরা না পড়ায় অনির্দিষ্টকালের জন্য স্তব্ধ হয়ে যায় !!! আমি ভিজ্যুয়াল স্টুডিও পছন্দ করি এবং ১৯৯৫ সাল থেকে এটি ব্যবহার করে আসছি এবং ২০১৫ সাল থেকে সরাসরি 2015 সালে ঝাঁপিয়ে পড়েছে তবুও এটি সবচেয়ে খারাপ সংস্করণ no এই ব্যতিক্রমটি কোনও সাফল্য না নিয়ে কাজ করার জন্য আমি 8 ঘন্টা ব্যয় করেছি। আমি আমার বাড়ির কম্পিউটারে সঠিক কোডটি 2017 এ অনুলিপি করেছি এবং এটি পুরোপুরি কার্যকর হয়েছে। আমি খুব বিরক্ত হয়েছি যে মাইক্রোসফ্ট কাজগুলিকে এমন একটি ফ্রেমওয়ার্কে ঠেলে দিয়েছে যা 2015 সংকলকটি সঠিকভাবে পরিচালনা করতে পারে না।

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