1 of 7

การแก้ไขข้อผิดพลาด�ของโปรแกรม�(Test and Debugging)

หน่วยการเรียนรู้ที่ 8

1

ประเภทของความผิดพลาด

การแก้ไขข้อผิดพลาดด้วย Exception

สาระการเรียนรู้

2

บอกประเภทความผิดพลาดของ Exception ได้

บอกประเภทความผิดพลาดของ Error ได้

อธิบายความแตกต่างระหว่าง Exception กับ Error ได้

อธิบายการใช้งานคำสั่ง try…catch ได้

อธิบายการใช้งานคำสั่ง throws ได้

เขียนโปรแกรมแก้ไขข้อผิดพลาดด้วย Exception ได้

จุดประสงค์การเรียนรู้

1

2

3

5

4

6

2 of 7

ประเภทของความผิดพลาด

ประเภทของ Exception

RunTime Exception เป็นข้อผิดพลาดที่เกิดขั้นตอนการเขียนโปรแกรม เช่น

1

  • Array lndex Out Of Bouns Exception
  • Arithmetic Exception
  • Nullpointer Exception

แบ่งออกเป็น 2 ประเภทใหญ่ ๆ ได้ คือ

IO Exception เป็นข้อผิดพลาดที่ภาษา Java กำหนดให้ต้องมีการจัดการหากมีการเรียกใช้เมท็อดที่อาจเกิดข้อผิดพลาดประเภทนี้ เช่น

2

  • EOF Exception
  • File Not Found Exception

3 of 7

ประเภทของความผิดพลาด

ความแตกต่างระหว่าง Exception กับ Error

Exception

Error

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

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

4 of 7

การใช้งานคำสั่ง try…catch

การแก้ไขข้อผิดพลาดด้วย Exception

Statements คือ ชุดคำสั่งที่ต้องการดักจับข้อผิดพลาด

theException e คือ ประเภทของ Exception ที่ต้องการดักจับ

statements_n คือ ชุดคำสั่งที่จะทำงานเมื่อพบข้อผิดพลาดตาม Exception

MethodName คือ เป็นส่วนของการประกาศเมท็อด

finalStatements คือ ชุดคำสั่งที่จะทำงานเสมอไม่ว่าจะพบข้อผิดพลาดหรือไม่

ตัวอย่างโปรแกรมที่มีข้อผิดพลาด

เมื่อรันโปรแกรม ผลลัพธ์ที่ได้

5 of 7

การแก้ไขข้อผิดพลาดด้วย Exception

ตัวอย่างโปรแกรมแก้ไขข้อผิดพลาดที่เกิดจากการหารด้วยศูนย์ และการป้อนข้อมูลผิดประเภท

เมื่อรันโปรแกรมในกรณีที่ป้อนค่า NumberA : 5, NumberB : 0 จะได้ผล ดังนี้

เมื่อรันโปรแกรมในกรณีที่ป้อนค่า NumberA : 9, NumberB : A จะได้ผล ดังนี้

เมื่อรันโปรแกรมในกรณีที่ป้อนค่า NumberA : 8 , NumberB : 4 จะได้ผล ดังนี้

6 of 7

การใช้งานคำสั่ง throws

การแก้ไขข้อผิดพลาดด้วย Exception

Access modifier คือ ขอบเขตในการเข้าถึงของเมท็อด

return_type คือ ชนิดของข้อมูลที่เมท็อดจะทำการคืนค่ากลับ แต่ในกรณีที่ไม่มี

การคืนค่าให้กำหนดเป็น void

MethodName คือ ชื่อของเมท็อด

Parameter คือ ตัวแปรที่ใช้ในการรับข้อมูล

ExceptionType1

ExceptionType2 คือ ประเภทของข้อผิดพลาดที่ต้องการดักจับ

ExceptionTypen

Statements คือ ชุดคำสั่งกำหนดการทำงานของเมท็อด

varValue คือ ค่าที่ต้องการส่งกลับ แต่ในกรณีที่กำหนด return_type เป็น

void จะไม่มีการส่งค่ากลับ

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

คำสั่ง throws เป็นคำสั่งที่ใช้วิธีการส่งข้อผิดพลาดออกไปจัดการด้วยอ็อบเจกต์ ซึ่งมีรูปแบบการทำงาน ดังนี้

7 of 7

การแก้ไขข้อผิดพลาดด้วย Exception

ตัวอย่างโปรแกรมแก้ไขข้อผิดพลาด โดยใช้ Exception ที่สร้างขึ้นเอง

เมื่อรันโปรแกรมในกรณีที่ป้อนคะแนนเป็น 80 จะได้ผล ดังนี้

เมื่อรันโปรแกรมในกรณีที่ป้อนคะแนนเป็น 500 จะได้ผล ดังนี้

เมื่อรันโปรแกรมในกรณีที่ป้อนคะแนนเป็น X จะได้ผล ดังนี้