Creating And Using Exceptions

10
Creating And Using Exceptions อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี ([email protected])

Transcript of Creating And Using Exceptions

Page 1: Creating And Using Exceptions

Creating And Using Exceptions

อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี

([email protected])

Page 2: Creating And Using Exceptions

Understanding the Importance of Exceptions

• เข้าใจการใช้ข้อยกเว้น

• การจัดการข้อยกเว้นเป็นส่วนส าคัญของการเขียนโปรแกรมจาวา

• ป้องกันเหตุการณ์ที่ไมแ่น่นอน– NULL value

– ข้อผิดพลาด

• โปรแกรมเมอร์ใช้วิธีการแก้ไขปัญหาแล้วเกิดล้มเหลว

• วิธีการเขียนโปรแกรมเพื่อความปลอดภัยมากขึ้น

• การแจ้งเตือนความผิดพลาดที่อาจเกิดขึ้น

Page 3: Creating And Using Exceptions

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– ข้อผิดพลาดในหน่วยความจ าหรือการค้นสถานะที่ไมส่อดคล้องกนั

Page 4: Creating And Using Exceptions

Extending the Exception Class

• หาข้อผิดพลาดที่อาจเกิดขึ้นและสร้างข้อยกเว้น• “UnknownClientException”

• รายละเอียดของปัญหาที่อาจสร้างข้อยกเว้น ด้วยพารามิเตอร์import java.lang.Exception;

class UnknownClientException extends Exception{/*** Constructor** @param pMessage description of exception*/UnknownClientException (String pMessage){super(pMessage);}}

Page 5: Creating And Using Exceptions

Extending the Exception Class

• API ออนไลน์ที่เราสามารถดูคลาสย่อยที่ก าหนดไวล้่วงหน้า– IOException

• CharConversionException• EOFException• FileNotFoundException• ObjectStreamException

– NullPointerException– PrinterException– SQLexception

Page 6: Creating And Using Exceptions

Throwing Exceptions

• โยนข้อยกเว้น

• มีการก าหนดข้อยกเว้นของเราเอง วิธีการโยนข้อยกเว้น (สมมติว่าลูกค้าไม่ได้มี ID)

• ต้องบอกคอมไพเลอรท์ีC่lass ด้วยการสร้างข้อยกเว้น และใช้การตรวจจับ

• throws UnknownClientException

public Client getClient(String pClientID)throws UnknownClientException

Page 7: Creating And Using Exceptions

Throwing Exceptions

• ป้องกันไม่ให้เกิดข้อผิดพลาด ที่ไม่ไดส้ังเกตุ

if (foundClient != null){return foundClient;}else{throw new UnknownClientException("BookOfClients.getClient():unknown client ID:" + pClientID);}

Page 8: Creating And Using Exceptions

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);}

Page 9: Creating And Using Exceptions

Exception object

Page 10: Creating And Using Exceptions

Summary

• การตรวจสอบข้อผิดพลาดจากการเขียนโปรแกรมทั้งจากผู้เขียนและระบบสามารถท าได้ด้วยการใช้ Exceptions ในภาษา Java

• Exceptions ประกอบด้วย– ข้อยกเว้นและการจัดการข้อผิดพลาด

• ผู้เขียนโปรแกรมสามารถก าหนดเหตุการณ์ที่เป็นไปได้ เพื่อจัดการข้อผิดพลาดที่อาจเกิดขึ้นได้ ดีกว่าแก้ปัญหาที่จะเกิดขึ้น