Home / Myexception

Myexception


 

Exceptions....

 

 

 

 

โปรแกรมภาษาจาวาแบ่งข้อผิดพลาดที่อาจเกิดขึ้นขณะรันโปรแกรมเป็นสอง ประเภทคือ

 

      Error เป็นข้อผิดพลาดที่ไม่สามารถแก้ไขและจัดการได้ เช่น    

         VirtualMachineError,OutOfMemoryError

      Exception เป็นข้อผิดพลาดที่สามารถแก้ไขหรือจัดการได้ เช่น

                                 ArrayIndexOutOfBoundsException,FileNotFoundException

 

            โดยในที่นี้จะกล่าวเฉพาะข้อผิดพลาดประเภท Exception เท่านั้น

 

 

           

          Exceptions

                    Exception เป็น object อย่างหนึ่งที่ตัวแปลภาษาสร้างขึ้นเมื่อมีข้อผิดพลาดเกิดขึ้นกับโปรแกรมเพื่อใช้ตรวจสอบสภาวะที่ผิดปกติของโปรแกรม

     หรือการทำงานที่ไม่ถูกต้องของโปรแกรม โดย Exception จะถูกส่ง (Throw) ออกมาจากโปรแกรมที่มีความผิดปกติเกิดขึ้นซึ่งสามารถนำ Exception

     ดังกล่าวไปตรวจสอบเพื่อควบคุมให้โปรแกรมสามารถทำงานต่อไปได้อย่างปกติ

                     Error หรือข้อผิดพลาดของโปรแกรมจะต่างจาก Exception คือ Error เป็นข้อผิดพลาดที่ส่วนใหญ่ไม่สามารถตรวจพบได้ เพราะ Error มักจะทำให้

     โปรแกรมหยุดการทำงานทันที เช่น Disk เสีย หน่วยความจำทับกัน (Stack Overflow) เป็นต้น

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

     จึง สามารถสั่งให้โปรแกรมทำงานต่อไปได้ทันที เช่น กรณีที่นำตัวเลข 2 จำนวนมาหารกันแต่ตัวหารมีค่าเท่ากับ 0 เราก็สามารถตรวจสอบได้ว่าเกิดข้อผิดพลาด

     ทางการคำนวณเกิดขึ้นอาจจะสั่งให้โปรแกรมกำหนดค่าของตัวหารใหม่ก็ได้ เป็นต้น

       

ประเภทของ Exception
Exception แบ่งออกเป็นสองประเภท คือ

 

      RuntimeException

      IOException

 

RuntimeException เป็นข้อผิดพลาดที่อาจหลีกเลี่ยงได้หากมีการเขียนโปรแกรมที่ถูกต้อง

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

 

 

       

     คลาสที่เกี่ยวข้องกับข้อผิดพลาด

 

 

 

 

     

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

 

          

 

          

       การสร้าง Exception ขึ้นมาใช้เอง

 

                เราสามารถสร้าง Exception ชึ้นมาใช้เองได้โดยการสืบทอด (Inherit) มาจาก Class “Exception” แต่มีข้อกำหนดว่าการใช้ Exception

         ที่สร้างขึ้นมาเองนั้นจะต้องส่ง Exception ที่สร้างขึ้นมาเองด้วยคำสั่ง “throw” เพราะตัวแปรภาษา Java ไม่รู้จัก Exception ที่สร้างขึ้นมาเอง

         ดังนั้นจึงต้องใช้คำสั่ง “throw” และ Keyword “throws” คู่กันเสมอ

 

 

                      ตัวอย่าง  แสดงการสร้าง Exception ขึ้นมาใช้เอง

            

 

           

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

 

            

 

          ผลการรันโปรแกรม

            

 

      

           

             คำอธิบาย

 

1.       จากตัวอย่างมีการสร้าง Exception ขึ้นมาใช้งานเอง โดยการสร้าง Class “UserException”  ซึ่งขยายมาจาก “Exception” เมื่อต้องการส่ง

        Exception ออกไปก็ส่ง object ของ Class “UserException” ออกไปแทน Exception ทั่วๆ ไปที่มีอยู่ในตัวแปรภาษา Java

2.       ใน Class “ExUserException1” บรรทัดที่ (10)-(15) ภายใน Method “run()” มีการตรวจสอบค่า Parameter ที่รับเข้ามา โดยหากค่าน้อยกว่า 0

         ก็ให้ส่ง Exception ออกไป ในที่นี้จะส่ง “UserException”  ซึ่งเป็น Exception ที่สร้างขึ้นมาเองออกไปด้วยคำสั่งในบรรทัดที่ (12) แต่ถ้าค่าที่

        รับเข้ามามีค่าไม่น้อยกว่า 0 ก็จะแสดงค่านั้นออกทางจอภาพ ข้อสังเกตคือหลัง Method “run()” จะต้องระบุ Exception ที่จะส่งออกมาด้วยในที่นี้

        คือ “UserException”

3.       จากตัวอย่างจะเห็นว่าผลลัพธ์จากการเรียกใช้ Method “getMessage()” ในบรรทัดที่ (6) มีค่าเป็น “null” เนื่องจากยังไม่ได้กำหนดข้อความให้กับ

        Exception ที่สร้างขึ้นใหม่นั่นเอง

 

 

                                       

                                                          

                                                                

  อ้างอิงจาก

     กิตติ ภักดีวัฒนะกุล.
2546. คัมภีร์ JAVA เล่ม 1.
หจก. ไทยเจริญการพิมพ์,กรุงเทพฯ


    Post a comment

    Your Name or E-mail ID (mandatory)

     

    Note: Your comment will be published after approval of the owner.




     RSS of this page