জাভাস্ক্রিপ্ট ব্যতিক্রম স্ট্যাক ট্রেস


90

ফায়ারফক্সে আমি ব্যবহার করে একটি ব্যতিক্রমের স্ট্যাক ট্রেস পেতে পারি exception.stack

অন্যান্য ব্রাউজারগুলিতেও এটি পাওয়ার কোনও উপায় আছে?

সম্পাদনা: আমি আসলে স্ট্যাকের ট্রেসটি স্বয়ংক্রিয়ভাবে সংরক্ষণ করতে চাই (যদি সম্ভব হয়) এবং এটি সময়ে ডিবাগ না করে (অর্থাত আমি কীভাবে একটি ডিবাগারে স্ট্যাক ট্রেস পেতে পারি তা জানি)।

উত্তর:


74

আপনি যেখানে স্ট্যাক ট্রেস মুদ্রণ করতে চান সেখানে এই লাইনটি রাখুন:

console.log(new Error().stack);

দ্রষ্টব্য: ক্রোম 24 এবং ফায়ারফক্স 18 এ আমার দ্বারা পরীক্ষিত

পাশাপাশি এই সরঞ্জামটি একবার দেখে নেওয়া মূল্যবান হতে পারে ।


4
মিষ্টি - আমি লাইন নম্বর পেতে ওনাররারের সংমিশ্রণটি ব্যবহার করি এবং তারপরে ব্যবহারকারীর কাছে স্ট্যাকট্রেসটি সতর্ক করার জন্য আক্রমণাত্মক লাইনটি চেষ্টা করে এবং আপনার পরামর্শ দিয়ে মোড়ানো করি rap `window.onerror = ফাংশন (বার্তা, url, লাইন সংখ্যা) {সতর্কতা ('বার্তা:' + বার্তা + '- url:' + url + '- ln:' + লাইন নম্বর); সত্য প্রত্যাবর্তন; }; `তারপরে স্ট্যাকট্রেস মুদ্রণের জন্য এটি মোড়ানো করুন। `চেষ্টা করুন {// এমন কিছু কোড যা ব্যতিক্রম ঘটছে। } ক্যাচ (ই) {সতর্কতা (নতুন ত্রুটি ()। স্ট্যাক); } `
ফিলিপ মারফি

কোনওভাবে মারা যায় আমাকে কেবল স্ট্যাকের প্রথম লাইন দেয়। আমি কি ভুল করছি?? যেমন: ফাংশন foo () {fdasmkl} try {foo ()} ক্যাচ (ই) r এরর = নতুন ত্রুটি (ঙ)। স্ট্যাক; কনসোল.লগ (ভুল)} = >>> এর Error: ReferenceError: fdasmkl is not defined at <anonymous>:6:7পরিবর্তে"Error: ReferenceError: fdasmkl is not defined at eval (eval at <anonymous> (:6:1), <anonymous>:1:1) at <anonymous>:6:1"
চিৎজুই

কিছু নয়, বিষয়টি খুঁজে পেয়েছি। যেহেতু এটি ইতিমধ্যে একটি ত্রুটি ছিল তাই আমি এটি করতে পারি: function foo() { fdasmkl } try { foo() } catch(e) { console.log(e.stack) }তাত্ক্ষণিকভাবে
চিৎজুই

23

ওয়েবকিটের এখন কার্যকারিতা রয়েছে যা স্ট্যাক ট্রেস সরবরাহ করে:

ওয়েব ইন্সপেক্টর: স্ট্যান্ড ট্রেস বোঝা , ইউরি সেমিখাতস্কি বুধবার, 20 এপ্রিল, 2011 সকাল 7:32 এ পোস্ট করেছেন (ওয়েবকিট.অর্গ)

সেই পোস্ট থেকে:


4
কেবল তার স্ট্যাকটি দেখার জন্য একটি ব্যতিক্রম তৈরি করার চেয়ে অনেক বেশি সুবিধাজনক।
অ্যালেক্স চার্চিল

লিঙ্কটি নষ্ট হয়ে গেছে, তবে আমি মনে করি এখানে একটি অনুলিপি আছে pjh0718.blogspot.com/2016/02/…
স্টিফেন টার্নার

2

আপনি যদি স্ট্রিং স্ট্যাক ট্রেস চান তবে আমি ইনসিনের উত্তরটি দিয়ে যাব: stacktrace.js । আপনি যদি স্ট্যাকট্রেস (লাইন নম্বর, ফাইলের নাম, ইত্যাদি) স্ট্যাকিনফোর টুকরা অ্যাক্সেস করতে চান তবে হুডের নীচে আসলে স্ট্যাকট্রেস.জেএস ব্যবহার করে।


0

আসলেই নয়, কমপক্ষে সহজেও হয় না।

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


0

আপনাকে অবশ্যই একটি ভাল ওপেন সোর্স লাইব্রেরি ট্রেসকিট চেষ্টা করতে হবে যা সমস্ত বড় ব্রাউজারগুলিতে অনাহীন জাভাস্ক্রিপ্ট ব্যতিক্রমগুলির জন্য স্ট্যাক ট্রেস তৈরির চেষ্টা করে। আপনি ট্রেসকিট সম্পর্কে আরও পড়তে পারেন

https://github.com/csnover/TraceKit/

দ্রষ্টব্য : আপনি খুঁজছেন যদি একটি সার্ভিস (Tracekit ব্যবহার করে) ভাল UI 'তে সঙ্গে, আপনি চেষ্টা করে দেখতে পারেন Atatus

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