VBScript - การจัดการข้อผิดพลาด

ข้อผิดพลาดในการเขียนโปรแกรมมีสามประเภท: (a) ข้อผิดพลาดทางไวยากรณ์ (b) ข้อผิดพลาดรันไทม์และ (c) ข้อผิดพลาดทางตรรกะ

ข้อผิดพลาดทางไวยากรณ์

ข้อผิดพลาดทางไวยากรณ์หรือที่เรียกว่าข้อผิดพลาดในการแยกวิเคราะห์เกิดขึ้นในเวลาตีความสำหรับ VBScript ตัวอย่างเช่นบรรทัดต่อไปนี้ทำให้เกิดข้อผิดพลาดทางไวยากรณ์เนื่องจากไม่มีวงเล็บปิด -

<script type = "text/vbscript">

   dim x,y
   x = "Tutorialspoint"
   y = Ucase(x

</script>

ข้อผิดพลาดรันไทม์

ข้อผิดพลาดรันไทม์เรียกอีกอย่างว่าข้อยกเว้นเกิดขึ้นระหว่างการดำเนินการหลังการตีความ ตัวอย่างเช่นบรรทัดต่อไปนี้ทำให้เกิดข้อผิดพลาดรันไทม์เนื่องจากไวยากรณ์ที่นี่ถูกต้อง แต่ในรันไทม์มันพยายามเรียก fnmultiply ซึ่งเป็นฟังก์ชันที่ไม่มีอยู่ -

<script type = "text/vbscript">
   Dim x,y
   x = 10
   y = 20
   z = fnadd(x,y)
   a = fnmultiply(x,y)
   
   Function fnadd(x,y)
      fnadd = x+y
   End Function

</script>

ข้อผิดพลาดทางตรรกะ

ข้อผิดพลาดทางลอจิกอาจเป็นข้อผิดพลาดประเภทที่ยากที่สุดในการติดตาม ข้อผิดพลาดเหล่านี้ไม่ได้เป็นผลมาจากข้อผิดพลาดทางไวยากรณ์หรือรันไทม์ แต่จะเกิดขึ้นเมื่อคุณทำผิดพลาดในตรรกะที่ขับเคลื่อนสคริปต์ของคุณและคุณไม่ได้รับผลลัพธ์ที่คุณคาดหวัง คุณไม่สามารถจับข้อผิดพลาดเหล่านั้นได้เนื่องจากขึ้นอยู่กับความต้องการทางธุรกิจของคุณว่าคุณต้องการใส่ตรรกะประเภทใดในโปรแกรมของคุณ ตัวอย่างเช่นการหารตัวเลขด้วยศูนย์หรือสคริปต์ที่เขียนขึ้นซึ่งเข้าสู่การวนซ้ำแบบไม่มีที่สิ้นสุด

Err Object

สมมติว่าเรามีข้อผิดพลาดรันไทม์การดำเนินการจะหยุดลงโดยการแสดงข้อความแสดงข้อผิดพลาด ในฐานะนักพัฒนาหากเราต้องการจับข้อผิดพลาดนั้นError ใช้วัตถุ

ตัวอย่าง

ในตัวอย่างด้านล่างนี้ Err.Number ให้หมายเลขข้อผิดพลาดและ Err.Description ให้คำอธิบายข้อผิดพลาด

<script type = "text/vbscript">
  
  Err.Raise 6     ' Raise an overflow error.
  MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description
  Err.Clear       ' Clear the error.

</script>