Creating And Using Exceptions
-
Upload
cc-nakhon-pathom-rajabhat-university -
Category
Education
-
view
5 -
download
0
Transcript of Creating And Using Exceptions
Creating And Using Exceptions
อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี
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)
• ต้องบอกคอมไพเลอรท์ีC่lass ด้วยการสร้างข้อยกเว้น และใช้การตรวจจับ
• 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 ประกอบด้วย– ข้อยกเว้นและการจัดการข้อผิดพลาด
• ผู้เขียนโปรแกรมสามารถก าหนดเหตุการณ์ที่เป็นไปได้ เพื่อจัดการข้อผิดพลาดที่อาจเกิดขึ้นได้ ดีกว่าแก้ปัญหาที่จะเกิดขึ้น