Creating And Using Exceptions อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี (tkorinp@hotmail.com)
Understanding the Importance of Exceptions เข้าใจการใช้ข้อยกเว้น การจัดการข้อยกเว้นเป็นส่วนสำคัญของการเขียนโปรแกรมจาวา ป้องกันเหตุการณ์ที่ไม่แน่นอน NULL value ข้อผิดพลาด โปรแกรมเมอร์ใช้วิธีการแก้ไขปัญหาแล้วเกิดล้มเหลว วิธีการเขียนโปรแกรมเพื่อความปลอดภัยมากขึ้น การแจ้งเตือนความผิดพลาดที่อาจเกิดขึ้น
Kinds of Exception ชนิดของข้อยกเว้น (normal exceptions and run time exceptions) Subclass java.lang.Exception สำหรับปัญหาที่คาดการณ์ไว้ Throws try/catch block อาจไม่ถูกต้องและการกู้คืนที่เหมาะสม เช่น IO errors Subclass java.lang.RuntimeException สถานการณ์ที่นำไปสู่ความล้มเหลวขณะรันไทม์ ไม่จำเป็นต้องอยู่ใน Throws try/catch block ข้อผิดพลาดในหน่วยความจำหรือการค้นสถานะที่ไม่สอดคล้องกัน
Extending the Exception Class หาข้อผิดพลาดที่อาจเกิดขึ้นและสร้างข้อยกเว้น “UnknownClientException” รายละเอียดของปัญหาที่อาจสร้างข้อยกเว้น ด้วยพารามิเตอร์ import java.lang.Exception; class UnknownClientException extends Exception { /** * Constructor * * @param pMessage description of exception */ UnknownClientException (String pMessage) { super(pMessage); } }
Extending the Exception Class API ออนไลน์ที่เราสามารถดูคลาสย่อยที่กำหนดไว้ล่วงหน้า IOException CharConversionException EOFException FileNotFoundException ObjectStreamException NullPointerException PrinterException SQLexception
Throwing Exceptions โยนข้อยกเว้น มีการกำหนดข้อยกเว้นของเราเอง วิธีการโยนข้อยกเว้น (สมมติว่าลูกค้าไม่ได้มี ID) ต้องบอกคอมไพเลอร์ที่Class ด้วยการสร้างข้อยกเว้น และใช้การตรวจจับ throws UnknownClientException public Client getClient(String pClientID) throws UnknownClientException
Throwing Exceptions ป้องกันไม่ให้เกิดข้อผิดพลาด ที่ไม่ได้สังเกตุ if (foundClient != null) { return foundClient; } else { throw new UnknownClientException("BookOfClients.getClient(): unknown client ID:" + pClientID); }
Catching Exceptions การตรวจจับข้อยกเว้น การสร้างข้อยกเว้น ด้วยการเขียนโปรแกรมเพื่อป้องกันข้อผิดพลาด เรียกใช้ try / catch block try { Client c = listOfClients.getClient(clientID) ; c.determineCreditRating(); } catch (UnknownClientException uce) { System.out.println("INTERNAL ERROR IN BankManager.awardLoan()\n"+ "Exception details: " + uce); }
Exception object
Summary การตรวจสอบข้อผิดพลาดจากการเขียนโปรแกรมทั้งจากผู้เขียนและระบบสามารถทำได้ด้วยการใช้ Exceptions ในภาษา Java Exceptions ประกอบด้วย ข้อยกเว้นและการจัดการข้อผิดพลาด ผู้เขียนโปรแกรมสามารถกำหนดเหตุการณ์ที่เป็นไปได้ เพื่อจัดการข้อผิดพลาดที่อาจเกิดขึ้นได้ ดีกว่าแก้ปัญหาที่จะเกิดขึ้น