SlideShare a Scribd company logo
1 of 10
Download to read offline
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 ประกอบด้วย
– ข้อยกเว้นและการจัดการข้อผิดพลาด
• ผู้เขียนโปรแกรมสามารถกาหนดเหตุการณ์ที่เป็นไปได้ เพื่อจัดการ
ข้อผิดพลาดที่อาจเกิดขึ้นได้ ดีกว่าแก้ปัญหาที่จะเกิดขึ้น

More Related Content

Viewers also liked

Persistent Human Dimensions of Poverty
Persistent Human Dimensions of PovertyPersistent Human Dimensions of Poverty
Persistent Human Dimensions of PovertyJonathan Dunnemann
 
Búsqueda en base de datos pubmed
Búsqueda en base de datos pubmedBúsqueda en base de datos pubmed
Búsqueda en base de datos pubmedpabalglor
 
Personal pronouns and possessive adjectives
Personal pronouns and possessive adjectivesPersonal pronouns and possessive adjectives
Personal pronouns and possessive adjectivesAlejandra Espinoza
 
การพยาบาลเพื่อสนองความต้องการด้านการขับถ่ายอุจจาระ
การพยาบาลเพื่อสนองความต้องการด้านการขับถ่ายอุจจาระการพยาบาลเพื่อสนองความต้องการด้านการขับถ่ายอุจจาระ
การพยาบาลเพื่อสนองความต้องการด้านการขับถ่ายอุจจาระCC Nakhon Pathom Rajabhat University
 
BÚSQUEDA EN BASE DE DATOS
BÚSQUEDA EN BASE DE DATOSBÚSQUEDA EN BASE DE DATOS
BÚSQUEDA EN BASE DE DATOSmarmacfra
 
100 Years of Research in Youth Development
100  Years of Research in Youth Development100  Years of Research in Youth Development
100 Years of Research in Youth DevelopmentJonathan Dunnemann
 
Despierta tu creatividad
Despierta tu creatividad Despierta tu creatividad
Despierta tu creatividad Sandra Castillo
 
Ideas generation
Ideas generationIdeas generation
Ideas generationLolJokes
 

Viewers also liked (14)

Persistent Human Dimensions of Poverty
Persistent Human Dimensions of PovertyPersistent Human Dimensions of Poverty
Persistent Human Dimensions of Poverty
 
Búsqueda en base de datos pubmed
Búsqueda en base de datos pubmedBúsqueda en base de datos pubmed
Búsqueda en base de datos pubmed
 
Búsqueda en base de datos PUBMED
Búsqueda en base de datos PUBMEDBúsqueda en base de datos PUBMED
Búsqueda en base de datos PUBMED
 
Presentación1
Presentación1Presentación1
Presentación1
 
Lola
LolaLola
Lola
 
Epoc
EpocEpoc
Epoc
 
Personal pronouns and possessive adjectives
Personal pronouns and possessive adjectivesPersonal pronouns and possessive adjectives
Personal pronouns and possessive adjectives
 
Cholesterol
CholesterolCholesterol
Cholesterol
 
การพยาบาลเพื่อสนองความต้องการด้านการขับถ่ายอุจจาระ
การพยาบาลเพื่อสนองความต้องการด้านการขับถ่ายอุจจาระการพยาบาลเพื่อสนองความต้องการด้านการขับถ่ายอุจจาระ
การพยาบาลเพื่อสนองความต้องการด้านการขับถ่ายอุจจาระ
 
BÚSQUEDA EN BASE DE DATOS
BÚSQUEDA EN BASE DE DATOSBÚSQUEDA EN BASE DE DATOS
BÚSQUEDA EN BASE DE DATOS
 
100 Years of Research in Youth Development
100  Years of Research in Youth Development100  Years of Research in Youth Development
100 Years of Research in Youth Development
 
Problemas
ProblemasProblemas
Problemas
 
Despierta tu creatividad
Despierta tu creatividad Despierta tu creatividad
Despierta tu creatividad
 
Ideas generation
Ideas generationIdeas generation
Ideas generation
 

More from CC Nakhon Pathom Rajabhat University

การสร้่างเว็บด้วยภาษา html
การสร้่างเว็บด้วยภาษา htmlการสร้่างเว็บด้วยภาษา html
การสร้่างเว็บด้วยภาษา htmlCC Nakhon Pathom Rajabhat University
 
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจCC Nakhon Pathom Rajabhat University
 
การนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบการนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบCC Nakhon Pathom Rajabhat University
 
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซการออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซCC Nakhon Pathom Rajabhat University
 
การออกแบบเอาต์พุต/การออกแบบอินพุต
การออกแบบเอาต์พุต/การออกแบบอินพุตการออกแบบเอาต์พุต/การออกแบบอินพุต
การออกแบบเอาต์พุต/การออกแบบอินพุตCC Nakhon Pathom Rajabhat University
 
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศการพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศCC Nakhon Pathom Rajabhat University
 
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบCC Nakhon Pathom Rajabhat University
 
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศCC Nakhon Pathom Rajabhat University
 
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธาบทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธาCC Nakhon Pathom Rajabhat University
 

More from CC Nakhon Pathom Rajabhat University (20)

ภาษา php
ภาษา phpภาษา php
ภาษา php
 
ภาษา java sript
ภาษา java sriptภาษา java sript
ภาษา java sript
 
session cookies
session cookiessession cookies
session cookies
 
ภาษา css
ภาษา cssภาษา css
ภาษา css
 
ภาษา xhtml
ภาษา xhtmlภาษา xhtml
ภาษา xhtml
 
ภาษา html5
ภาษา html5ภาษา html5
ภาษา html5
 
การสร้่างเว็บด้วยภาษา html
การสร้่างเว็บด้วยภาษา htmlการสร้่างเว็บด้วยภาษา html
การสร้่างเว็บด้วยภาษา html
 
หลักการออกแบบเว็บไซต์
หลักการออกแบบเว็บไซต์หลักการออกแบบเว็บไซต์
หลักการออกแบบเว็บไซต์
 
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
 
การนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบการนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบ
 
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซการออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
 
การออกแบบเอาต์พุต/การออกแบบอินพุต
การออกแบบเอาต์พุต/การออกแบบอินพุตการออกแบบเอาต์พุต/การออกแบบอินพุต
การออกแบบเอาต์พุต/การออกแบบอินพุต
 
Entity Relationship
Entity RelationshipEntity Relationship
Entity Relationship
 
แบบจำลองระบบ
แบบจำลองระบบแบบจำลองระบบ
แบบจำลองระบบ
 
การวิเคราะห์ระบบ 2
การวิเคราะห์ระบบ 2การวิเคราะห์ระบบ 2
การวิเคราะห์ระบบ 2
 
การวิเคราะห์ระบบ 1
การวิเคราะห์ระบบ 1การวิเคราะห์ระบบ 1
การวิเคราะห์ระบบ 1
 
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศการพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
 
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
 
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
 
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธาบทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
 

Creating And Using Exceptions

  • 1. Creating And Using Exceptions อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี (tkorinp@hotmail.com)
  • 2. Understanding the Importance of Exceptions • เข้าใจการใช้ข้อยกเว้น • การจัดการข้อยกเว้นเป็นส่วนสาคัญของการเขียนโปรแกรมจาวา • ป้องกันเหตุการณ์ที่ไม่แน่นอน – NULL value – ข้อผิดพลาด • โปรแกรมเมอร์ใช้วิธีการแก้ไขปัญหาแล้วเกิดล้มเหลว • วิธีการเขียนโปรแกรมเพื่อความปลอดภัยมากขึ้น • การแจ้งเตือนความผิดพลาดที่อาจเกิดขึ้น
  • 3. 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 – ข้อผิดพลาดในหน่วยความจาหรือการค้นสถานะที่ไม่สอดคล้องกัน
  • 4. Extending the Exception Class • หาข้อผิดพลาดที่อาจเกิดขึ้นและสร้างข้อยกเว้น • “UnknownClientException” • รายละเอียดของปัญหาที่อาจสร้างข้อยกเว้น ด้วยพารามิเตอร์ import java.lang.Exception; class UnknownClientException extends Exception { /** * Constructor * * @param pMessage description of exception */ UnknownClientException (String pMessage) { super(pMessage); } }
  • 5. Extending the Exception Class • API ออนไลน์ที่เราสามารถดูคลาสย่อยที่กาหนดไว้ล่วงหน้า – IOException • CharConversionException • EOFException • FileNotFoundException • ObjectStreamException – NullPointerException – PrinterException – SQLexception
  • 6. Throwing Exceptions • โยนข้อยกเว้น • มีการกาหนดข้อยกเว้นของเราเอง วิธีการโยนข้อยกเว้น (สมมติว่าลูกค้า ไม่ได้มี ID) • ต้องบอกคอมไพเลอร์ที่Class ด้วยการสร้างข้อยกเว้น และใช้การตรวจจับ • throws UnknownClientException public Client getClient(String pClientID) throws UnknownClientException
  • 7. Throwing Exceptions • ป้องกันไม่ให้เกิดข้อผิดพลาด ที่ไม่ได้สังเกตุ if (foundClient != null) { return foundClient; } else { throw new UnknownClientException("BookOfClients.getClient(): unknown client ID:" + pClientID); }
  • 8. 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); }
  • 10. Summary • การตรวจสอบข้อผิดพลาดจากการเขียนโปรแกรมทั้งจากผู้เขียน และระบบสามารถทาได้ด้วยการใช้ Exceptions ในภาษา Java • Exceptions ประกอบด้วย – ข้อยกเว้นและการจัดการข้อผิดพลาด • ผู้เขียนโปรแกรมสามารถกาหนดเหตุการณ์ที่เป็นไปได้ เพื่อจัดการ ข้อผิดพลาดที่อาจเกิดขึ้นได้ ดีกว่าแก้ปัญหาที่จะเกิดขึ้น