วันจันทร์ที่ 27 มกราคม พ.ศ. 2557

2.2.8 การจัดการ และตรวจสอบความผิดพลาด

2.2.8 การจัดการ และตรวจสอบความผิดพลาด
1. Syntax Error
2. Runtime Error
3. Logical Error
Syntax Errors
เกิดจากการที่เราเขียนโค้ดไม่สอดคล้อง หรือไม่ถูกหลักเกณฑ์ไวยากรณ์ภาษาVisual Basic เช่น
Private Sub Command1_Click()
  Dim strCurrency As String
  strCurrency = Format(1000.25, #,##0.00)
   Print strCurrency
End Sub
เมื่อรันซับโพรซีเยอร์นี้ VB จะตรวจพบข้อผิดพลาด พร้อมทั้งแจ้ง Message Box บอกข้อผิดพลาดดังรูป
Syntax Errors

เนื่องจากไม่มีเครื่องหมาย “เช่น   If  I = 0
    I = I+1
End if
จะเห็นว่าขาดคำว่า Then ทำให้ Error 
Runtime Error 
ข้อผิดพลาดชนิดนี้ เป็นข้อผิดพลาดที่ตรวจสอบยากกว่า Syntax Errors เพราะต้อง
รันโปรแกรมแล้ว จึงจะรู้ว่าเกิดข้อผิดพลาด อย่างเช่น ในกรณีที่เรามีการหารด้วยตัวเลข 0
 เมื่อโปรแกรมรันมาถึงบรรทัดนี้จะเกิด Error พร้อมกับแจ้งว่า มีข้อผิดพลาดที่บรรทัดนี้
เป็นต้น ตัวอย่างเช่น
Private Sub Command1_Click()
  Dim x As Integer, y As Integer
  x = 100
  y = x / 0
  MsgBox "ค่า y เท่ากับ" & y, vbInformation, "ค่า y"
End Sub
เมื่อรันซับโพรซีเยอร์นี้ Visual Basic จะตรวจพบข้อผิดพลาด พร้อมทั้งแจ้ง Message Box บอกข้อผิดพลาดด้วย 
Logical Error 
ข้อผิดพลาดนี้ คือลักษณะผลลัพธ์ที่ไม่ถูกต้องเวลามีการคำนวณหรือประมวลนั่นเอง สาเหตุที่เกิดขึ้นอาจมาจากตัวผู้เขียนโปรแกรมโดยตรง คือ ผู้เขียนโปรแกรมมีความเข้าใจผิดพลาดแล้วเขียนโปรแกรมตามความเข้าใจที่ผิดนั้น ข้อผิดพลาดชนิดนี้เป็นข้อผิดพลาดที่ตรวจพบได้ยากที่สุดเนื่องจากโปรแกรม Visual Basic ไม่สามารถตรวจพบข้อผิดพลาดได้นั่นเอง ดังตัวอย่างเช่น 
Private Sub Command1_Click()
  If Len(txtSource.Text) = 0 Then 
      MsgBox "ข้อความที่ส่งมาคือ" & txtSource.Text 
   Else 
      MsgBox "กรุณากรอกข้อความด้วย"
    End If 
End Sub
การตรวจสอบและแก้ไขข้อผิดพลาด  (Error Object and Debug Tools)
1. Auto Syntax Check เป็นการกำหนดให้ Editor ตรวจสอบหาข้อผิดพลาดทางด้าน Syntax ทุกครั้ง 
2. Require Variable Declaration เป็นการกำหนดให้ Editor ตรวจหาว่าตัวแปรใดในโปรแกรมที่ไม่ได้ Declare ไว้ 
3. Auto List Members เป็นการกำหนดให้ Editor แสดง Property หรือ Method ที่เกี่ยวข้องกับประโยคคำสั่งที่เรากำลังพิมพ์บนจอภาพในรูปของ Dropdown ListBox ดังรูป
4. Auto Quick Info เป็นการกำหนดให้ Editor แสดง Pop-Up Box ซึ่งเป็นกรอบสี่เหลี่ยมเล็กใต้ประโยคคำสั่งที่เรากำลังพิมพ์บนจอภาพเพื่อแสดงถึงรูปแบบของฟังก์ชั่นนั้นๆ ดังรูป





คำสั่งสำหรับจัดการกับข้อผิดพลาด
          ใน ภาษา Visual Basic มีคำสั่งพิเศษสำหรับจัดการกับ Errorที่เกิดขึ้นขณะ Runtime 3 แบบ คือ
1. On Error Goto Label : คำสั่งนี้จะคอยตรวจจับ Error ที่เกิดขึ้นในขณะ Runtime เมื่อเกิด Error จะกระโดยไปทำงานที่ Label ที่กำหนด โดย Label คือข้อความทีมีเครื่องหมาย “ : ” ต่อท้าย 
เช่น
          ตัวอย่างโปรแกรมรับตัวเลขเท่านั้น
Private Sub Command1_Click()
   Dim sum As Integer 
   sum = InputBox(“กรุณาใส่ตัวเลขจำนวนเต็มด้วย “, “ รับข้อมูล “)
   MsgBox sum 
End Sub 
คำสั่งสำหรับจัดการกับข้อผิดพลาด
Private Sub Command1_Click ()
  On Error GoTo Err Trap 
   Dim sum As Integer 
   sum = InputBox (“กรุณาใส่ตัวเลขจำนวนเต็มด้วย “, “รับข้อมูล “)
   MsgBox sum 
   MsgBox sum 
ErrTrap:
    Exit Sub 
End Sub 

2. On Error Resume Next :  คำสั่งนี้จะไม่สนใจ Error ที่เกิดขึ้น ถ้าเกิด Error จะทำงานต่อไปทันทีโดยไม่มีการฟ้อง Error ขึ้น เช่น
Private Sub Command1_Click()
  On Error Resume Next 
   Dim sum As Integer 
   sum = InputBox(“กรุณาใส่ตัวเลขจำนวนเต็มด้วย “, “รับข้อมูล “)
   MsgBox sum 
   MsgBox sum 
End Sub 
4. On Error Goto 0 : คำสั่งนี้สำหรับยกเลิก คำสั่ง On Error ต่างๆ ที่เคยประกาศมา


ไม่มีความคิดเห็น:

แสดงความคิดเห็น