मेरे पास एक कोशिश/पकड़ जावास्क्रिप्ट/टाइपस्क्रिप्ट निम्नानुसार है:

import ls from 'local-storage';

let user;

try {
  user = ls.get('userInfo');
} catch (e) {
  user = {};
}

मेरे पास ऐसे मामले हैं जहां ls.get() अमान्य जावास्क्रिप्ट लौटाता है जो काफी सामान्य घटना है और मैं त्रुटि की रिपोर्ट या लॉग नहीं करना चाहता, मैं बस अपने उपयोगकर्ता को {} पर सेट करना चाहता हूं जैसा कि मैं ऊपर दिखा रहा हूं .

यही है, स्थानीय भंडारण खाली होने पर ls.get एक त्रुटि फेंकता है और मैं यह सुनिश्चित करना चाहता हूं कि मैं उस स्थिति को संभालूं और फेंके गए अपवाद को पकड़ूं।

क्या ऐसा करने के लिए कोई साफ या बेहतर वाक्यविन्यास है? अगर मैं सिर्फ catch() कहता हूं तो मुझे एक त्रुटि मिलती है।

0
Pete 14 फरवरी 2019, 18:13

1 उत्तर

सबसे बढ़िया उत्तर

टिप्पणियों में जो कहा गया था, उसके अलावा, मुझे लगता है कि आप कुछ ऐसा उपयोग करने की कोशिश कर रहे हैं जो ईसीएमएस्क्रिप्ट स्पेक (या जेएस स्पेक) में नहीं है, लेकिन जल्द ही होगा: वैकल्पिक कैच बाइंडिंग

तब तक, यदि आपके पास त्रुटि के लिए कोई पैरामीटर (या बाइंडिंग वेरिएबल) नहीं है, तो आपको एक त्रुटि मिलेगी। आप कैच कोड ब्लॉक को खाली छोड़ सकते हैं, हालांकि:

let user;

try {
  user = ls.get('userInfo');
} catch (err) {}

संपादित करें: tc39 का प्रस्ताव पृष्ठ समाप्त हो गया

2
Seblor 14 फरवरी 2019, 15:20