मेरे पास एक उपकरण है, जो JSFiddle के तरीकों के समान है, जो मुझे गतिशील रूप से जावास्क्रिप्ट में टाइप करने और इसे पृष्ठ पर चलाने की अनुमति देता है। कोड कई लाइनें हो सकती है, और आमतौर पर होगी।गतिशील रूप से कोड लोड करें और पार्स त्रुटि की लाइन संख्या प्राप्त करें
दुर्भाग्यवश यदि कोड में टाइप किया गया अपवाद है तो मुझे अपवाद की लाइन संख्या नहीं मिल सकती है अगर मैं कोड चलाने के लिए eval() का उपयोग करता हूं।
मैं एक आंशिक समाधान, बजाय
try{
eval(code);
}
catch(e) {
processException(e);
}
का उपयोग कर
बजाय इस तरह कुछ करने के लिए की है जिसमें पाया गया: अब
var s = document.createElement('script');
s.appendChild(document.createTextNode(
"try{\n" +
code +
"}catch(e){processException(e)}"));
document.body.appendChild(s);
, अगर कोड एक अपवाद फेंकता है, और मैं देखो स्टैक ट्रेस (मेरी प्रक्रिया अपवाद() फ़ंक्शन में) मुझे अपवाद की एक पंक्ति संख्या मिल सकती है (फ़ायरफ़ॉक्स और क्रोम में, वैसे भी)।
यह वास्तव में एक अच्छा और अच्छा है अगर यह वास्तव में एक रनटाइम अपवाद है, जैसे एक चर परिभाषित नहीं किया जा रहा है। समस्या यह है कि यदि कोई पार्स त्रुटि/वाक्यविन्यास त्रुटि है, जैसे कि मेल नहीं खाते हैं या जैसे। मुझे कुछ नहीं मिला।
क्या इसके लिए कोई पागल कामकाज है, जो कम से कम फ़ायरफ़ॉक्स और क्रोम पर काम करता है? फंक्शन ऑब्जेक्ट के भीतर स्क्रिप्ट टैग के भीतर eval के भीतर eval? मैं सबकुछ कोशिश कर रहा हूं और कुछ भी नहीं मिला जो काम करता है।
में बनाया गया ब्राउज़र पसंद करेगा यह वास्तव में उपयोगी सिद्धांत है। धन्यवाद। – SystemParadox