JS錯誤處理
阿新 • • 發佈:2018-12-18
主動觸發錯誤
throw try catch debugger斷點與單步跟蹤
function getUserInput(msg){
var input=prompt(msg);
var parsed=parseInt(input);
if(parsed!=parsed){//parsed為NaN
return input;
}else{
return parsed;
}
}
function multiple(a,b){
if((typeof a!="number")||(typeof b!="number")){
throw new Error ("arguments should all be number!"); //丟擲錯誤後會往外找到最近它的catch語句
}
return a*b;
}
var c;
var a=getUserInput("請輸入一個數");
var b=getUserInput("請再輸入一個數");
try {
c=multiple(a,b);
alert("它們的乘積是"+c);
}catch(e){
alert("請輸入兩個數字");
}
try {//如果內部的程式碼丟擲錯誤,則程式碼直接跳入catch塊執行,且把錯誤物件賦值給catch括號內的變數
var x=null;
console.log(x.foo);
}catch (e){
console.log(e);
}finally{
//做一些請理性的工作
//finally塊是一定會執行的
}