জাভাস্ক্রিপ্ট: Chrome থেকে সমস্ত ত্রুটি ভেঙে যাওয়ার কোনও উপায় আছে কি?


258

আমি ফায়ারব্যাগের "সমস্ত ত্রুটিতে ব্রেক" কার্যকারিতার সমতুল্য সন্ধান করছি। স্ক্রিপ্টস ট্যাবে, ক্রোমের একটি "সমস্ত ব্যতিক্রম বিরতি" রয়েছে তবে এটি সমস্ত ত্রুটি ভাঙ্গার মতো নয়।

উদাহরণস্বরূপ, নিম্নলিখিত কোড সহ একটি পৃষ্ঠা লোড করার সময়, আমি ক্রোমটি লাইনটি ভেঙে যেতে চাই foo.bar = 42। পরিবর্তে, "সমস্ত ব্যতিক্রম বিরতি" সক্ষম করার পরেও, আমি প্রত্যাশিত ফলাফল পাই না।

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <script type="text/javascript">

            function doError() {
                foo.bar = 42;
            }

            window.onload = function() {
                try {
                    doError();
                } catch (e) {
                    console.log("Error", e);
                }
            }
        </script>
    </head>
    <body>
    </body>
</html>

আপনি এই পৃষ্ঠায় বা এই জেএসফিডেলটি ব্যবহার করে উপরে পোস্ট করা কোডটি চেষ্টা করতে পারেন ।


আপনি অন্য কোন ধরণের ত্রুটি সম্পর্কে ভাবছেন?
ম্যাথু ক্রামলে

1
যে কোনও ত্রুটি, বলুন: একটি অনির্ধারিত পরিবর্তনশীল (যেমন হিসাবে console.log(gaga)) বা একটি অপরিজ্ঞাত সম্পত্তি (যেমন হিসাবে window.foo.bar) to
আর্নেট

2
তাদের ব্যতিক্রম নিক্ষেপ করা উচিত। "ব্যতিক্রম বিরতি" বিকল্পটি আমার পক্ষে কাজ করে। আমি যে ত্রুটিগুলি নিয়ে কাজ করতে পারি তা ভাবতে পারি না সিনট্যাক্স ত্রুটিগুলি, তবে কোডটি কার্যকর করার আগে সেগুলি ঘটে।
ম্যাথু ক্রামলে

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

উত্তর:


210

সম্পাদনা: মূল লিঙ্ক আমি উত্তর এখন অবৈধ লোকের নতুন URL হওয়া যাবে https://developers.google.com/web/tools/chrome-devtools/javascript/add-breakpoints#exceptions 2016-11-11 হিসাবে।

আমি বুঝতে পারি এই প্রশ্নের উত্তর রয়েছে তবে এটি আর সঠিক নয়। উপরের লিঙ্কটি ব্যবহার করুন ^


(উপরে সম্পাদিত লিঙ্কটি পরিবর্তিত পরিবর্তিত) - আপনি এখন এটিকে সমস্ত ব্যতিক্রম বা খালি হাতে না ছিন্ন করতে সেট করতে পারেন। (নোট করুন যে বোতামটি দেখতে আপনার উত্স ট্যাবে থাকা দরকার ))

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

সাধারণত আমি কোনও প্রশ্নের পুনরায় উত্তর দেই না, তবে আমার নিজেরও একই প্রশ্ন ছিল এবং আমি এখনই ভুল উত্তরটি পেয়েছি, তাই আমি বুঝতে পেরেছিলাম যে অনুসন্ধানগুলি পরবর্তী সময়ে আসা লোকদের জন্য আমি এই তথ্যটি এখানে রেখেছি। :)


1
ব্রায়ান, আপনাকে ধন্যবাদ, এটি এখন সত্যিই কাজ করছে। গত বছর ফেব্রুয়ারিতে এই বৈশিষ্ট্যটি ইতিমধ্যে উপলব্ধ ছিল, যখন আমি এটি পোস্ট করেছি, তবে এটি সঠিকভাবে কাজ করছে না, যখন মনে হয় এটি এখন ঠিকঠাক কাজ করছে। সাহায্য করার জন্য ধন্যবাদ.
আর্নেট

আপনার লিঙ্কটি দ্বারা উল্লিখিত বোতামটি আর নেই বলে মনে হচ্ছে (কমপক্ষে বর্তমান দেব চ্যানেলের ক্রোম প্রকাশে)। কীভাবে এটি আবার করবেন তা নিশ্চিত নন।
আন্দ্রে ফেদোরভ

2
হাই অ্যান্ড্রে, আমি ক্রোম ক্যানারি দেখছি এবং আমি এখনও সেখানে বোতামটি দেখতে পাচ্ছি। এটি বাম দিকের চতুর্থ বোতামটি, যেমন d.pr/i/DHwT- তে প্রদর্শিত হয়েছে - একবার ক্লিক করুন এবং এটি সব ব্যতিক্রমের বিরতিতে চলে যায়, যেখানে দ্বিতীয় ক্লিকটি আনক্যাচড ব্যাতিক্রমগুলিতে বিরতি দেয়। তৃতীয় ক্লিক না থামিয়ে ডিফল্টে ফিরে আসে।
ব্রায়ান আর্নল্ড সিনক্লেয়ার

লিঙ্কটি নষ্ট হয়ে গেছে আমি ভীত :(
রিক

1
তাড়াতাড়ি মন্তব্য না দেখার জন্য দুঃখিত! এটি প্রদর্শিত হয় যে বিকাশকারীরা / ওয়েব / টোলস / ক্রোম- দেবতুলস / জাভাস্ক্রিপ্ট/… এর আগে থেকেই সামগ্রীর সংক্ষিপ্তসার রয়েছে। আমি আসল উত্তরটিও সংশোধন করব, পারলে।
ব্রায়ান আর্নল্ড সিনক্লেয়ার

298

এটি পেতে আমার সমস্যা হয়েছে তাই আমি বিভিন্ন অপশন দেখায় ছবিগুলি পোস্ট করি:

ক্রোম 75.0.3770.142 [29 জুলাই 2018]

কমপক্ষে ক্রম 38.0.2125.111 [১১ ডিসেম্বর ২০১৪] এর পর থেকে খুব অনুরূপ ইউআই

ট্যাবে Sources:

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

বোতামটি সক্রিয় করা হলে, আপনি Pause On Caught Exceptionsনীচের চেকবক্সটি দিয়ে করতে পারেন : এখানে চিত্র বর্ণনা লিখুন


পূর্বের সংস্করণসমূহ

Chrome 32.0.1700.102 [03 ফেব্রুয়ারী 2014]

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

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

ক্রোম 27.0.1453.93 স্থিতিশীল

ডিবাগ বিকল্পগুলি


22
ফেসবুকে তাদের ডক্সে সরাসরি এর সাথে যুক্ত করার জন্য আমাকে প্রশংসা করতে হবে। +1
jimm101

1
লোকেরা খেয়াল করার জন্য, সাইডবারটি প্রসারিত না করা থাকলে বাটনগুলি কেবল সেখানে লুকিয়ে রাখা হবে, সেখানে কোনও ইঙ্গিত নেই।
এরিক মাঝেরুস

17

এটি এখন "সমস্ত ব্যতিক্রম বিরতি" বোতামের সাহায্যে ক্রোমে সমর্থিত।

এটি সক্ষম করতে:

  • Chrome বিকাশকারী সরঞ্জামগুলির "উত্স" ট্যাবে যান
  • "সমস্ত ব্যতিক্রম মোডে বিরতি দিন" স্যুইচ করতে উইন্ডোর নীচে "বিরতি" বোতামটি ক্লিক করুন।

নোট করুন যে এই বোতামটির একাধিক রাজ্য রয়েছে। এর মধ্যে স্যুইচ করতে বোতামটি টিপুন

  • "সমস্ত ব্যতিক্রম বিরতি দিন" - বোতামটি হালকা নীল বর্ণের
  • "অবহেলিত ব্যতিক্রমগুলিতে বিরতি দিন", বোতামটি বেগুনি রঙের
  • "ব্যতিক্রমগুলিতে বিরতি দিন" - বোতামটি ধূসর বর্ণের

1

প্রায় কোনও ত্রুটি একটি ব্যতিক্রম ছুঁড়ে ফেলবে। কেবলমাত্র ত্রুটিগুলি যা আমি "ব্যতিক্রমগুলিতে বিরতি" বিকল্পের সাথে কাজ করতে পারি না তা হ'ল বাক্য গঠন ত্রুটিগুলি যা কোডের কোনও কার্যকর হওয়ার আগেই ঘটে থাকে, সুতরাং যাইহোক বিরতি দেওয়ার কোনও স্থান নেই এবং কোডটির কোনওটিই চলবে না।

স্পষ্টতই, ক্রম যদিও ব্যতীত চেষ্টা-ব্লকের ভিতরে থাকলে ব্যতিক্রমটি থামবে না। এটি কেবল অচল ব্যতিক্রমগুলিতে বিরতি দেয়। আমি এটি পরিবর্তন করার কোনও উপায় জানি না।

যদি আপনার কেবলমাত্র ব্যতিক্রমটি কী লাইনে ঘটেছিল তা জানতে হবে (তবে ব্যতিক্রমটি পুনরায় উত্পাদনযোগ্য হলে আপনি একটি ব্রেকপয়েন্ট নির্ধারণ করতে পারেন), Errorক্যাচ ব্লকে দেওয়া অবজেক্টটির এমন একটি stackসম্পত্তি রয়েছে যা দেখায় যে ব্যতিক্রমটি কোথায় ঘটেছে।


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

@ ম্যাথহে, আমি আর একটি উত্তর তৈরি করে বলেছিলাম এটি অসম্ভব, এবং এটি উত্তর হিসাবে চিহ্নিত করেছে। আপনি বা অন্য কেউ যদি সমাধান পান তবে আমি চিহ্নিতকারীটি পরিবর্তন করব।
আওয়ারনেট

1

দুর্ভাগ্যক্রমে, এটি ক্রোমের বিকাশকারী সরঞ্জামগুলি ফায়ারব্যাগের মতো "সমস্ত ত্রুটি বন্ধ করতে" অক্ষম বলে মনে হচ্ছে।


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