@wywm@z[y[W
@ | @wywm@ | @ |
@ | |JavaScript̗O|@ | @ |
ŏIXVF2024N1228
@JavaScript̗ÓAPythonɔׂƂȂアC܂BOʂɓKpƂAfoOɃvO̍ĖƂȂ镔Ŋpc[Ƃ܂BJavaScript̗ÓA{IɈȉ̍\Ă܂B
try{ ŐN\̂鏈 }
catch(error){ ON̏ }
finally{ ONĂNȂĂŌɍs }
@ŁAtry{}̏ɗO悤ȏoɁAthrowg܂Bthrow new Error("G[EbZ[W");ƂāAG[EIuWFNgError̃CX^X𓊂AƂ悤Ɏg܂BO\镔try{}ň͂ȂƂȂ̂ŁA̕ɑāA܂AfoO蔭ɖc邽߂ɎgAƂƂƎv܂BȂAOsȂƁAŃvO͒~Ă܂܂B
@O@\̃eXgEvOHTML\[XER[hBeXgEvÓAȉ<script>`</script>̂悤ɂȂĂ܂B
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JavaScript̃eXg</title>
<style type="text/css">
p{color:black;font-size:medium}
input{font-size:large}
</style>
</head>
<body style="background-color:white">
<p>JavaScript̃eXg܂B</p>
<script>
// ÕeXg
try {
var count = 1;
var x1 = 1;
var x2 = 0;
var x3 = x1 / x2;
// divide-0 error͔Ȃ
console.log("x1:"+x1+", x2:"+x2+", x3:"+x3);
var x5 = x4;
}
catch(error) {
console.log('\x28'+(count++)+'\x29'+error.name+': '+error.message+'\n'+error.stack);
}
try {
func1();
}
catch(error) {
console.log('\x28'+(count++)+'\x29'+error.stack);
}
try {
let x4 = 0;
x4();
}
catch(error) {
console.log('\x28'+(count++)+'\x29'+error.stack);
}
try {
func2();
function func2() {
let x4 = 0;
x4();
}
}
catch(error) {
console.log('\x28'+(count++)+'\x29'+error.stack);
}
try {
const x4 = 0;
x4 = "aaa";
console.log(x4);
}
catch(error) {
console.log('\x28'+(count++)+'\x29'+error.stack);
}
try {
var ar1 = new Array(-1);
}
catch(error) {
console.log('\x28'+(count++)+'\x29'+error.stack);
}
try {
var str1 = "New Error"
throw new Error(str1);
}
catch(error) {
console.log('\x28'+(count++)+'\x29'+error.stack);
}
finally {
alert("I܂B");
}
</script>
</body>
</html>
@LvǑʂ͍ṒuI܂BvAconsoleɏo͂܂B܂A0Ŋ銄Z`FbNĂ܂BJavaScriptł́A0ŊĂInfinityɂȂG[ɂȂ炸AO܂B
@ɁAvar x5 = x4;ƂāA`̕ϐx4QƂĂ܂B(1)Ԗڂ̗OAReferenceErrorOAcatch(error)̂ƂŁAG[EIuWFNgerrorɁAO܂BG[EIuWFNǵAnameCmessageCstack3̃vpeBĂ܂Bł́AnamevpeB"ReferenceError"AmessagevpeBɂ"x4 is not defined"Ɠ܂BstackvpeBɂ́AǂŗOƂłȂA
"ReferenceError: x4 is not defined
at file:///C://jtest16.html:21:11
Ƃ悤(̂Ƃɂjtest16.html̋ꏊ܂)ĂāAnamemessage̓eĂ̂ŁAȍ~ɂẮAnamemessage͏ȗāAstackvpeB̂consoleɏo͂Ă܂BȂAvOł́AԖڂ̗O߂ɔԍtĂ܂B
@(2)Ԗڂ̗Oł́A`̊func1()N悤ƂāAReferenceErrorO܂B(3)Ԗڂ̗Oł́AϐƂĒ`x4ƂċN悤ƂāATypeErrorO܂B(4)Ԗڂ̗Oł́Afunc2()NAfunc2()̒ŕϐƂĒ`ꂽx4ƂċN悤ƂāATypeError܂AstackvpeBɂ́Afunc2()̒ŗOAƂ܂B
@(5)Ԗڂ̗Oł́Aconst x4ƂĒ`ꂽx4ɑ悤ƂāATypeErrorO܂B萔ɍđĂƂmessageo܂B(6)Ԗڂ̗Oł́AvfɁ|1w肵z낤ƂāAsȗvfƂƂŁARangeErrorO܂B(7)Ԗڂ̗Oł́Atry{}̒ŁAthrowɂA"New Error"ƂErrorOĂ܂B
yLz@LłB̊F܂̂x肽A낵肢܂B
yLz@L͂܂łłB