উত্তর:
এক মুহুর্তের জন্য, স্ট্যাক ওভারফ্লোতে যেতে দাও - জাভা ব্যতিক্রমগুলি কতটা ধীর?
দেখা যাচ্ছে যে ব্যতিক্রম ছোঁড়ার ব্যয়বহুল অংশটি স্ট্যাক ট্রেসের জনসংখ্যা যা ব্যতিক্রমের সাথে চলে।
সমস্যাগুলি কোথা থেকে ডাকা হচ্ছে তা বের করার চেষ্টা করার জন্য সমস্যাগুলি ডিবাগ করার সময় এই স্ট্যাক ট্রেসটি খুব সহায়ক helpful সমস্যাগুলির বিষয়ে জিজ্ঞাসিত একটি আদর্শ প্রশ্ন হ'ল "কোডটি কী" এবং "স্ট্যাক ট্রেসটি কী"। এই দুটি জিনিস ছাড়া সমস্যা নির্ণয় করা প্রায় অসম্ভব।
তবে সমস্ত ব্যতিক্রম সমস্যার দ্বারা উত্পন্ন হয় না । তাদের মধ্যে কিছু, আপনি প্রায় আশা।
পরিস্থিতি বিবেচনা আপনি কিছু উৎস থেকে স্ট্রিং পেয়েছেন এবং আপনি এটি দিয়ে একটি পূর্ণসংখ্যা বিন্যাসে ফিরে পেতে চাই যে Integer.decode ।
Integer foo = Integer.decode(str);
কিন্তু এটি decode
একটি চেক নিক্ষেপ NumberFormatException
। ঠিক আছে...
Integer foo;
try {
foo = Integer.decode(str);
} catch (NumberFromatException e) {
// raise an error back to the input form
}
তবে আপনি সেখানে স্ট্যাক ট্রেস সম্পর্কে সত্যিই চিন্তা করেন না ... তবে এটি সেখানে। এবং স্ট্যাক ট্রেসকে জনবহুল করার কারণে এটি কেবলমাত্র কিছুটা ধীরে ধীরে।
সুতরাং, স্কালায়, আপনি পেয়েছেন NoStackTrace
:
ব্যতিক্রমগুলির জন্য একটি বৈশিষ্ট্য যা দক্ষতার কারণে স্ট্যাক ট্রেসটি পূরণ করে না। স্ট্যাক ট্রেস দমনকে স্কেল.সিস.সিস্টেমপ্রোপার্টিগুলিতে সিস্টেম সম্পত্তি র্যাপারের মাধ্যমে বৈশ্বিক ভিত্তিতে অক্ষম করা যেতে পারে।
আপনার যা প্রয়োজন নেই তা জনবস করবেন না। আপনি স্ট্যাক ট্রেস সম্পর্কে চিন্তা করবেন না কারণ আপনি ঠিক এখনই এটি পরিচালনা করছেন। এটি এমন কিছু নয় যা উত্তীর্ণ হয় এবং এটি ব্যতিক্রমীও নয়।
আপনি কী পরিচালনা করছেন তা যখন আপনি জানেন তখন এটি ব্যবহার করা খারাপ অভ্যাস নয়। তবে, যদি আপনি এই শৃঙ্খলাটি অতিক্রম করে যাচ্ছেন - এটি ব্যবহার করবেন না - আপনাকে কিছুটা ব্যতিক্রম এসেছে সেখান থেকে আপনাকে কেবল লগইন করতে হবে।