null
रिटर्निंग expected behavior है यदि अनुरोध संदर्भ उपलब्ध नहीं है, या यदि कैनवास पहले से ही संदर्भ के एक अलग प्रकार के लिए सौंपा गया है:
रिटर्न null
दिया संदर्भ आईडी समर्थित नहीं है, तो, अगर कैनवास को पहले से ही अन्य संदर्भ प्रकार (जैसे को "वेबग्ल" संदर्भ प्राप्त करने के बाद "2 डी" संदर्भ प्राप्त करने के लिए प्रारंभ किया गया है)।
एक InvalidStateError
अपवाद अगर setContext()
या transferControlToProxy()
तरीकों का इस्तेमाल किया गया है फेंकता:
विशेष मामलों में जहां एक अपवाद प्रॉक्सी परिदृश्यों (ibid) से संबंधित फेंक दिया जा सकता है।
इसके अलावा, भले ही एक ब्राउज़र संदर्भ से एक खास प्रकार की कोई गारंटी नहीं है कि वस्तु अगर इस तरह के स्मृति के रूप में सिस्टम संसाधन कम जिस स्थिति में null
लौटा दिया जाएगा रहे हैं बनाया जा सकता है वहाँ का समर्थन कर सकते हैं।
Here is an overview अलग-अलग (सामान्य) परिदृश्यों में क्या वापस किया जाएगा।
तो जब तक आप प्रॉक्सी स्थानान्तरण (जो वास्तव में व्यापक रूप से इस समय समर्थित नहीं है) का उपयोग कर रहे आप getContext()
साथ try-catch
उपयोग करने की आवश्यकता नहीं है।
युक्ति: भविष्य में कैनवास को probablySupportsContext()
संपत्ति मिल जाएगी जिसका उपयोग getContext()
से पहले किया जा सकता है। यह (पहले से ही अलग संदर्भ प्रकार, कम संसाधनों आदि के साथ उपयोग में समर्थित संदर्भ,) इन परीक्षणों करते हैं और false
वापसी अगर शर्तों को पूरा नहीं कर रहे हैं:
var supported = canvas . probablySupportsContext(contextId [, ... ])
रिटर्न झूठी ही तर्क के साथ getContext()
बुला अगर होगा निश्चित रूप से शून्य वापस आते हैं, और अन्यथा सच है।विक्रेता विशिष्ट एक्सटेंशन यह संभव सिद्धांत एक अपवाद है कि बहुत विशिष्ट एक्सटेंशन और यह कैसे अपने व्यवहार को परिभाषित करता पर निर्भर करता है फेंक दिया पाने के लिए है के लिए -
अद्यतन बस एक विशेष मामले पर विस्तृत करना चाहता था। लेकिन इन्हें मानक का हिस्सा नहीं माना जाना चाहिए और चूंकि वे ज्यादातर मामलों में प्रयोगात्मक हैं, इसलिए जोखिम और गैर-मानक व्यवहार का अर्थ है।
हाँ, मेरे लिए यह भी ऐसा दिखता है। लेकिन एक ब्राउज़र "2 डी" संदर्भों का समर्थन कर सकता है और कोई अन्य नहीं। लेकिन जब भी मैं वेबग्ल को अक्षम करता हूं, तो मुझे रिटर्न वैल्यू के रूप में शून्य मिलता है। सृजन के साथ, मुझे यकीन नहीं है कि कोई अपवाद हो सकता है, क्योंकि document.createElement ("something") मेरे लिए अपवाद के बिना अपरिभाषित है। –
डुप्ली नहीं बल्कि संबंधित, http://stackoverflow.com/questions/36565598/webglcontextcreationerror-event-is-it-triggered-synchronously/36566263#36566263 इसके अलावा, यह तथ्य मौजूद है कि यह घटना मौजूद है जिसका अर्थ है हाँ, ब्राउज़र ** ** एक त्रुटि फेंक सकते हैं। – Kaiido
लिंक के लिए धन्यवाद। मैं "webglcontextcreationerror" घटना के बारे में जानता था। मैं यहाँ शब्दावली के बारे में 100% प्रतिशत निश्चित नहीं हूं, लेकिन मैं तर्क दूंगा कि यह कोई त्रुटि नहीं फेंक रहा है, क्योंकि मैं इसे किसी अन्य स्थान पर नहीं पकड़ सकता (कोशिश/पकड़ने के साथ)। मैं कहूंगा, यह एक नियमित घटना है, जिसे ocasionally "... त्रुटि" कहा जाता है। लेकिन कृपया, कोई मुझे सही करे, अगर मैं यहां गलत हूं, –