| การดักจับความผิดพลาด | ใช้ดักจับความผิดพลาด |
|---|---|
| การ throw จัดการกับความผิดพลาด | ใช้สำหรับสร้างชนิดของ Exception ขึ้นมาเอง โดยจะต้องอยู่ใน block ของ try เท่านั้น |
| การใช้ onerror จัดการกับความผิดพลาด | ใช้ดักจับความผิดพลาด |
subject:การดักจับความผิดพลาด
syntax:try { // ชุดคำสั่งที่คาดว่าจะเกิดความผิดพลาด ; } catch ( Exception ) { // ชุดคำสั่งที่จะทำงานหลังจากเกิดความผิดพลาด ; } finally { // ชุดคำสั่งที่จะทำงานเสมอ ; }
content:โดยทั่วไปเมื่อเกิดความผิดพลาดขึ้นแล้ว ตัวแปลภาษาของ JavaScript จะสร้าง Object Exception ขึ้นเพื่อนำไปตรวจสอบ และควบคุมให้ โปรแกรมสามารถดำเนินต่อไปได้โดยไม่ต้องหยุดการทำงาน
example:try { var str = new String ( "Hello" ); alert ( 100 + str ); } catch ( err ) { alert ( "Error Description : " + err.description ); }
subject:การ throw จัดการกับความผิดพลาด
syntax:throw objStringException;
content:ใช้สำหรับสร้างชนิดของ Exception ขึ้นมาเอง โดยจะต้องอยู่ใน block ของ try เท่านั้น และส่งชนิดของ Exception นี้ไปยัง block ของ catch เพื่อทำการตรวจสอบ
example:try { var password = "123456"; if ( password.length < 5 ) { throw "SHORT"; } else if ( password.length > 10 ) { throw "LONG"; } } catch ( err ) { if ( err == "SHORT" ) { alert ( "กรุณาใส่ password ให้มากกว่า 5" ); } else if ( err == "LONG" ) { alert ( "กรุณาใส่ password ให้น้อยกว่า 10" ); } }
subject:การใช้ onerror จัดการกับความผิดพลาด
syntax:onerror = handleErr; function handleErr ( msg, url, line ) { ชุดคำสั่งที่จัดการกับความผิดพลาด ; return boolean; }
content:โดย msg ใช้แสดงรายละเอียดของความผิดพลาด โดย url ใช้แสดงตำแหน่งของ page ที่เกิดความผิดพลาด โดย line ใช้แสดงบรรทัดที่เกิดความผิดพลาด โดย การ return ถ้ากำหนด true คือ จะไม่ให้ browser แสดงข้อความผิดพลาด แต่ถ้ากำหนด false คือ จะให้ browser แสดงข้อความผิดพลาด ( ข้อความผิดพลาด ในที่นี้หมายถึง ข้อความผิดพลาดที่เป็นของ browser เอง )
example:onerror = handleErr; function handleErr ( msg, url, line ) { var str = "มี Error เกิดขึ้น\n\n"; str = str + "Error Description : " + msg + "\n"; str = str + "URL : " + url + "\n"; str = str + "Line : " + line + "\n"; alert ( str ); return true; }