5

मैं इस त्रुटि मिलती है:क्रोम में DOMException को कैसे पकड़ें?

Uncaught (in promise) DOMException: lockOrientation() is not available on this device. 
    code: 9 
    message: "lockOrientation() is not available on this device." 
    name: "NotSupportedError" 

जब मैं क्रोम में निम्न कोड चलाएँ:

try { 
    screen.orientation.lock('portrait'); 
} catch (error) { 
    // whatever 
} 

तथ्य यह है कि त्रुटि फेंक दिया जा रहा है की उम्मीद है, के बाद से डेस्कटॉप के लिए Chrome उन्मुखीकरण लॉकिंग का समर्थन नहीं करता । मैं त्रुटि पकड़ना चाहता हूं इसलिए यह कंसोल को कूड़ा नहीं करता है, लेकिन इसे try...catch ब्लॉक में लपेटना काम नहीं करता है।

मैं इसे क्यों नहीं पकड़ सकता? क्या मैं कुछ भूल रहा हूँ?

उत्तर

10

try/catch यहां काम नहीं करता है, क्योंकि screen.orientation.lock('portrait'); वास्तव में Promise देता है जो त्रुटि को फेंक रहा है। त्रुटि का यह हिस्सा दिखाता है कि वादे में अपवाद फेंक दिया गया है।

Uncaught (in promise) DOMException: lockOrientation() is not available on this device.

अपवाद को संभालने के लिए, आप एक catch कॉलबैक संलग्न कर सकते हैं।

screen.orientation.lock('portrait').catch(function() { 
    // whatever 
}); 
+1

बस मुझे जो चाहिए, धन्यवाद! चूंकि अन्य कार्यान्वयन सच/झूठे लौटते हैं और क्रोम एक वादा देता है, मैंने एक समारोह में विभिन्न कार्यान्वयन को गठबंधन करने के तरीके पर एक गलती लिखी। https://gist.github.com/jacksenechal/67315945593d452407ff –

संबंधित मुद्दे