ইন্টেলিজজে "ব্যতিক্রম অন ব্রেক" আছে কি?


318

এমন কোনও বৈশিষ্ট্য রয়েছে যা প্রথম ব্যতিক্রম ঘটায় স্বয়ংক্রিয়ভাবে ডিবাগিংটি ভেঙে দেবে?

সুতরাং আমরা

  1. অ্যাপ্লিকেশন শুরু করুন
  2. ব্যতিক্রম ছুঁড়ে এমন কিছু করুন
  3. ইন্টেলিজজে হ্যাপলাইট লাইন পপ আপ হয়েছে যেখানে ব্যতিক্রম ঘটেছে।

আপনি সম্ভবত কেবল অচেনা ব্যতিক্রমগুলি ভাঙতে চান, তাই না?
ডেভিড ফেরেঞ্জি রোগোয়ান

উত্তর:


367

চালান | ব্রেকপয়েন্ট দেখুন | ব্যতিক্রম ব্রেকপয়েন্টস


দুর্ভাগ্যক্রমে, আমি খুঁজে পেয়েছি যে অনুশীলনে (বড় ডেটা সহ), ফ্রেম ভেরিয়েবলগুলি যা আপনার যত্ন নেওয়া সর্বদা লোড হয় না।
information_interchange

158

ডায়ালগটি পপআপ করার একটি দ্রুত উপায় হ'ল Ctrl+ SHIFT+ F8(ম্যাক: Cmd+ SHIFT+ F8) টিপুন, তারপরে ব্যতিক্রম ব্রেকপয়েন্টস ট্যাবে ক্লিক করুন। আপনি যদি দেখছেন যে এটি সর্বশেষ ট্যাব ছিল, তবে এটি এখনও নির্বাচিত হবে, ব্যতিক্রমগুলি চালু এবং বন্ধ করতে ফ্লিক করা সহজ করে তোলে।

এটি ইন্টেলিজকে কোড (বা লাইব্রেরি কোড) যেখানে ব্যতিক্রম উত্থাপিত হয়েছিল সে পয়েন্টে বিরতি সৃষ্টি করবে। বিশেষত, আপনি ব্যতিক্রম হ্যান্ডলিংয়ে একটি 'প্রথম সুযোগ' পান, স্ট্যাকটি হাঁটতে যাওয়ার আগে / শেষ পর্যন্ত ব্লকগুলি কার্যকর করার জন্য খুঁজছেন।


টিআইপি: জাভা ক্লাসগুলি লোড করার সময় অভ্যন্তরীণভাবে প্রচুর ব্যতিক্রম ছুঁড়ে ফেলার ঝোঁক করে, তাই সমস্ত ব্যাতিক্রমের এই ভাঙ্গন বেশ ক্লান্তিকর হয়ে উঠতে পারে। সুসংবাদটি হ'ল আপনি শর্ত ক্ষেত্রটি ব্যবহার করে কিছু ধরণের ব্যতিক্রম বাদ দিতে পারেন ।

উদাহরণ স্বরূপ:

!(this instanceof java.lang.ClassNotFoundException)

আপনি একসাথে একাধিক এই শর্ত চেইন করতে পারেন &&

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


9
"কেবলমাত্র আমার প্রকল্পের ব্যতিক্রমগুলি ভাঙ্গার (জাভা সিস্টেম থেকে নয়) বলার কোনও উপায় আছে?
অভিশাপ

16
"নির্বাচিত ব্রেকপয়েন্টটি আঘাত না করা পর্যন্ত অক্ষম করুন:" ভুলে যাবেন না - এটি আশ্চর্যজনক। সমস্ত জাভা বা অন্যান্য লাইব্রেরিগুলি লোড করে সেট আপ করার পরে আপনার কোডে একটি ব্রেকপয়েন্ট সেট করুন। তারপরে ড্রপডাউন থেকে আপনার ব্রেকপয়েন্টটি বেছে নিন এবং অপেক্ষা করুন। আপনার ব্রেকপয়েন্টটি হিট হবে, এবং তারপরে আপনি একবার চালিয়ে যাওয়ার পরে আপনার নতুন কচড অ্যান্ড আনকচড এক্সপ্রেশন ফিল্টারটি শুরু করবে :) :)
লুই সেন্ট-আমুর

1
ব্রেকপয়েন্টস ডায়ালগ বাক্সের নীচে "ধরা পড়া ব্যতিক্রম" এবং "আনকাট ব্যতিক্রম" উভয়ই পরীক্ষা করতে ভুলবেন না।
রবিনো

59

ইন IntelliJ আইডিয়া 14 এখানে যান:

Run -> View Breakpoints -> Check "Java Exceptions Breakpoints" -> Uncheck "Caught Exceptions"

আপনি যদি চেক না Caught Exceptionsকরে থাকেন তবে প্রতিবার Java Frameworkঅভ্যন্তরীণ ব্যতিক্রম ছুঁড়ে ফেলা কার্যকর হবে stopped


1
চালান -> ব্রেকপয়েন্ট দেখুন ... -> "জাভা ব্যতিক্রম ব্রেকপয়েন্টগুলি" দেখুন -> "ধরা পড়া ব্যতিক্রম" নির্বাচন করুন
জোনাস

2
দুর্ভাগ্যক্রমে, "ধরা পড়া ব্যতিক্রমগুলি" অক্ষম করার পরেও এটি আমার জন্য ধরা পড়া ব্যতিক্রমগুলি ভেঙে দেয়।
কারসিজেনেট

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

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

কোনও কিছুই অকেজো নয়, যদি আপনি এটি ব্যবহার করতে জানেন তবে know
আলেসান্দ্রো ফ্ল্যাটি

12

হ্যা এখানে. ইন্টেলিজ আইডিইএ-র ব্রেকপয়েন্টস ডায়লগে আপনাকে একটি ব্যতিক্রম ব্রেকপয়েন্ট (এটি "কোনও ব্যতিক্রম" হতে পারে) সংজ্ঞায়িত করতে হবে।

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


7

আপনি যদি উপরের বাম কোণে "+" সামান্য চিহ্নটিতে ক্লিক করেন তবে আপনি একটি নতুন ব্রেকপয়েন্টটি যুক্ত করতে পারেন। আপনি যদি ব্যতিক্রম ব্রেকপয়েন্টটি নির্বাচন করেন তবে আপনি একটি সামান্য কথোপকথন পাবেন যেখানে আপনি ব্যতিক্রম বিরতিতে প্রবেশ করতে পারবেন (যদি আপনি সমস্ত ব্যতিক্রম ভাঙতে চান না)।


0

চালান > ব্রেকপয়েন্টগুলি দেখুন এর অধীনে ইন্টেলিজে নতুন সংস্করণগুলিতে ।

তারপরে জাভা ব্যতিক্রম ব্রেকপয়েন্টগুলি -> কোনও ব্যতিক্রম পরীক্ষা করুন

ব্যতিক্রমগুলি ডিবাগ করার একটি ভাল উপায় হ'ল আপনার প্রধান অ্যাপ্লিকেশন প্যাকেজ এবং ওয়াইল্ড কার্ড ব্যবহার করা .*। আপনি অন্যান্য অ্যাপ্লিকেশন দ্বারা ব্যতিক্রম ব্যতীত সন্ধান করছেন এবং আপনি অন্য কোনও লাইব্রেরি দ্বারা নয় (যেটি ব্যতিক্রম অনেক বেশি হতে পারে) বেশিরভাগ সময় আপনি অন্যান্য লাইব্রেরি ব্যতিক্রমগুলি এড়িয়ে যান।

চিত্রটিতে একটি উদাহরণ হিসাবে দেখানো হয়েছে আমি com.gs.mercury.*অ্যাপটি ব্যতিক্রম ছুঁড়ে ফেলার জন্য প্রতিবারই বিরতি ব্যবহার করি । আপনি যদি সেগুলির জন্য ব্যতিক্রমগুলি ব্যবহার করেন (ব্যতিক্রমী কেসগুলি পরিচালনা করতে এবং সাধারণ পরিস্থিতির প্রবাহকে পরিচালনা না করে) আপনি কেবল তখনই থামবেন যখন আপনি প্রায় সর্বকালে পছন্দসই ব্যতিক্রমটি পৌঁছান।

পি ডি। উত্তরটি কেবল চমত্কার দরকারী ক্যাচ ক্লাস ফিল্টারটি নির্দেশ করতে যুক্ত করা হয়েছে ।

ব্রেকপয়েন্ট

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