1. 程式人生 > >JS錯誤處理

JS錯誤處理

主動觸發錯誤

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塊是一定會執行的
}