Kosa cha JavaScript - Throw na Try to Catch
- Kwanza Maraa ya JS kwa urahisi
- Pya Maraa ya JS
try
Inaonyesha inasaidia kufafanua kosa kwenye kipindi cha kusaidia.
catch
Inaonyesha inasaidia kusaidia kosa.
throw
Ujumbe unaobadilisha kwa kuzingatia kosa zaidi.
finally
Inasaidia kufanya makosa, kwenye kipindi cha try na catch, bila kumaliza.
Kosa inatokea na huzio!
Kama inafanyika makosa ya JavaScript, inatokea kosa mbalimbali.
Kosa inaweza kutokea kama kosa ya mtaandaa, kosa kwenye kibidi cha kibidi, au kosa kwenye matatizo yenye uharibifu huzio.
Mfano
Kwenye mivuno hii, tunaelezea kwa kutumia: adddlert
Kandaa makosa kwa sababu ya kusaidia kwa kusababisha kosa kwenye makosa ya kusaidia:
<p id="demo"></p> <script> try { adddlert("Karibu kwa kumtazama!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; } </script>
JavaScript inaona adddlert kama kosa, kisha inafanya makosa ya kusaidia kosa.
JavaScript try na catch
try
Inaonyesha inasaidia kufafanua kosa kwenye kipindi cha kusaidia kama kosa inatukia kwenye kipindi cha kusaidia.
catch
Inaonyesha inasaidia kufafanua makosa kama kosa inatukia kwenye makosa ya try.
Matendo ya JavaScript try
na catch
Inaonyesha pamoja:
try { Makosa ya michezo ya kuandaa } catch(err) { Makosa ya kusaidia kosa }
JavaScript inaisha kosa
当发生错误时,JavaScript 通常会停止并产生错误消息。
技术术语是这样描述的:JavaScript 将抛出异常(抛出错误).
JavaScript 实际上会创建带有两个属性的 Error 对象:jina
na ujumbe
.
Ujumbe unaobadilisha
throw
Ujumbe unaobadilisha kwa kuzingatia kosa zaidi.
Kwa sababu ya teknolojia inaweza...Kosa kinaonekana kwa sababu ya kosa (kinaonekana kwa kosa).
Kosa kinaweza kinaonekana kwa sababu ya string ya JavaScript, namba, Bolea au kiwango:
throw "Kubwa sana"; // kosa kinaonekana kwa ujumbe throw 500; // kosa kinaonekana kwa namba
kama throw
na try
na catch
Kwa sababu ya kusababisha kwa kikati na ujumbe wa kosa wa kuzingatia.
Matokeo ya tathmini ya kuingia
Mbinu hii inakisia kwa kusababisha kwa kikati. Kama thamani inaonekana kosa, kosa kinatokana na kosa (err).
Kosa hiki (err) kinatokana na ujumbe wa catch na kuonyesha ujumbe wa kosa wa kuzingatia:
<!DOCTYPE html> <html> <body> <p>Ingiza namba 5 - 10:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">Test Input</button> <p id="message"></p> <script> function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "kimaumini"; if(isNaN(x)) throw "不是数字"; x = Number(x); if(x < 5) throw "kisikitiko"; if(x > 10) throw "kubwa sana"; } catch(err) { message.innerHTML = "Input ni " + err; } } </script> </body> </html>
Tathmini ya HTML
Kikata hiki kinahusiana na mbinu.
Mengine mwa kizamani kinaangalia JavaScript na tathmini ya HTML ya kufikia kwa kusababisha kwa kikati kwa kusababisha kwa kikati ya HTML:
<input id="demo" type="number" min="5" max="10" step="1">
Umasababu unaotukia ujumbe zaidi kuhusu tathmini ya foromu kwa kitabaka hiki kuanzia mawili mabaki.
Ujumbe wa finally
finally
Ujumbe unaobadilisha kwa kusababisha kufikia kwa try na catch, bila kuzungumza:
try { // Kwa sababu ya kufikia matokeo ya michezo } catch(err) { // Kwa sababu ya kusikia kosa } finally { // Kwa sababu ya kufikia chaguo yoyote inafanyishwa kwa kikati }
Mfano
function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "是空的"; if(isNaN(x)) throw "不是数字"; x = Number(x); if(x > 10) throw "太大"; if(x < 5) throw "太小"; } catch(err) { message.innerHTML = "错误:" + err + "."; } finally { document.getElementById("demo").value = ""; } }
Error 对象
JavaScript 拥有当错误发生时提供错误信息的内置 error 对象。
kina ya kina inakupata kina mbili yenye maana kikubwa:jina
na ujumbe
.
Kina ya Kina ya Kina ya Kina
Kina ya kina | Kina cha kina |
---|---|
jina | Inakusaidia kuwakilisha na kuwatoa jina la kina |
ujumbe | Inakusaidia kuwakilisha na kuwatoa ujumbe wa kina (mengine mmoja wa mawili wa kitabii) |
Kina ya Kina ya Kina ya Thamani
Kina ya kosa ina maelezo ya name ambayo inatoa kina zingine za kawaida ziliyotumiwa
Jina la kina | Kina cha kina |
---|---|
EvalError | Kina cha kuingiza kwa eval() kilichokaa |
RangeError | Kina cha kina cha namba kilichokaa kikikawaida kilichokaa |
ReferenceError | Kina cha kutumia muwajifunze bila kujulikana kilichokaa |
SyntaxError | Kina cha kilele cha kilingiliano kilichokaa |
TypeError | Kina cha kichukua aina bila kibali kilichokaa |
URIError | Kosa cha kuingiza kwa encodeURI() |
Inaonyesha kina hizi zisixi na zingine za kawaida.
Kosa cha Eval
EvalError
Inaonyesha kosa kwa kifaa cha eval()
Mjikamano mpya wa JavaScript haikupungua kwa kushika kosa EvalError
Tumia SyntaxError
Inapungua.
Kosa cha kikawaida cha namba
RangeError
Inakutumia kosa kama ume tumia namba inayotumiwa kwa kina cha kikawaida cha thamani.
Mfano: Huwezi kutumia 500 maelezo kwa namba.
Mfano
var num = 1; try { num.toPrecision(500); // Namba haikupatikana kwa kuwa na 500 maelezo } catch(err) { document.getElementById("demo").innerHTML = err.name; }
Kosa cha kutumia muwajifunze
Kama una tumia ( kutumia) muwajifunze wa haujajulikana ReferenceError
Inakutumia kosa:
Mfano
var x; try { x = y + 1; // y haikupatikana kwa kutumika ( kutumia) } catch(err) { document.getElementById("demo").innerHTML = err.name; }
Kosa cha kilele cha kilingiliano
Kama unaingiza kwa uwanja wa kiingiliano kwa kifaa cha kifaa kinachofikia kosa SyntaxError
Inayotumiwa:
Mfano
try { eval("alert('Hello)"); // Kusababisha kufikia kosa kwa ' } catch(err) { document.getElementById("demo").innerHTML = err.name; }
Kuchukua aina bila kibali
Kama hujafiki kwamba thamani au haujafikia kikawaida cha thamani chako TypeError
Inayotumiwa:
Mfano
var num = 1; try { num.toUpperCase(); // Hatukwenda kufungua kwa sababu ya kufungua kwa sababu ya kufungua } catch(err) { document.getElementById("demo").innerHTML = err.name; }
Matokeo wa kuzingatia URI
Kama unaingia chakula cha URI na viwango vya uangalifu, ni kwamba: URIError
Inayotumiwa:
Mfano
try { decodeURI("%%%"); // Hatukwenda kufungua kwa sababu ya kufungua kwa sababu ya kufungua } catch(err) { document.getElementById("demo").innerHTML = err.name; }
Viwango vya kina cha kina cha error vya uangalifu
Mozilla na Microsoft walichukua viwango vya kiwango cha kuzingatia vya kina cha error kwa uangalifu:
- fileName (Mozilla)
- lineNumber (Mozilla)
- columnNumber (Mozilla)
- stack (Mozilla)
- description (Microsoft)
- number (Microsoft)
Hutahidi kuionyesha kwa tovuti za jumuiya kwa sababu viwango hivyo vinasababisha kwa kawaida. Hivyo, hatutumia kwa kawaida.
- Kwanza Maraa ya JS kwa urahisi
- Pya Maraa ya JS