Object-Oriented Programming with Java Burapha University, 2001 Java Exceptions Week #9 Jarungjit Parnjai.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
E-COMMERCE WEBSITE Smartzap Co., Ltd.. Company Profile บริษัท สมาร์ทแซป จำกัด ก่อตั้งเมื่อปี 2543 (13 ปี ) ในช่วงยุค Internet เพิ่ง เริ่มต้น เป็นบริษัทที่ดำเนินงานทางด้าน.
Advertisements

โครงสร้างโปรแกรมภาษา JAVA
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
The InetAddress Class.
1 C Programming An Introduction. 2 Preprocessing Directives เขียนได้ 2 รูปแบบ #include คอมไพเลอร์จะทำ การค้นหาเฮดเดอร์ไฟล์ที่ระบุ จากไดเร็คทอรีที่ใช้
การจัดการความผิดพลาด
ขั้นตอนวิธีและเครื่องมือในการพัฒนาโปรแกรม (ต่อ)
Basic programming (JAVA)
Multilayer Feedforward Networks
VARIABLES, EXPRESSION and STATEMENTS. Values and Data Types Value เป็นสิ่งพื้นฐาน มีลักษณะเป็น ตัวอักษร หรือ ตัวเลข อาทิ 2+2 หรือ “Hello world” Value.
: Chapter 1: Introduction 1 Montri Karnjanadecha ac.th/~montri Image Processing.
ออโตมาตาจำกัด FINITE AUTOMATA
05_3_Constructor.
การเขียนโปรแกรมภาษาจาวาตอนที่ ๓
INC341 Steady State Error Lecture 6.
การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 7 การทดสอบโปรแกรม
Functions Standard Library Functions User-defined Functions.
LOGO Array. ประเภทของ Array - อาเรย์ 1 มิติ (One) - อาเรย์ 2 มิติ (Two) - อาเรย์ 3 มิติ (Three) 2.
คลาสและวัตถุ (2) (Class & Object)
File I/O (1) โปรแกรมจะอ่านหรือเขียนข้อมูลผ่านท่อส่งข้อมูล (Stream)
Dynamic Link Library (DLL)
Javascripts.
Inheritance การสืบทอดคลาส
String Class มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
อาร์เรย์ หรือแถวลำดับ (Array)
input from keyboard มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
Algorithm มหาวิทยาลัยเนชั่น Java Pre-Test 49 (Series 1, 2 )
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 6 มิถุนายน 2556 Exception มหาวิทยาลัยเนชั่น
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 มิถุนายน 2550 Method of Class มหาวิทยาลัยเนชั่น.
Page: 1 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้ ผศ. บุรินทร์ รุจจน พันธุ์.. ปรับปรุง 19 ตุลาคม 2555 Introduction to Batch.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 7 มิถุนายน 2556 Text File Processing มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 22 มิถุนายน 2550 ความผิดพลาดที่พบ บ่อย มหาวิทยาลัยเนชั่น.
การติดต่อกับฐานข้อมูล(MySQL)
Handling Exceptions & database
โครงสร้างควบคุมการทำงาน
คำสั่งควบคุมการ ทำงาน การเขียนโปรแกรมโดยปกติ มีทั้งให้ทำงาน เป็นลำดับ ที่ละคำสั่ง บางครั้งมีการให้เปลี่ยน ลำดับในการทำคำสั่ง เพื่อให้การเขียน โปรแกรมมีประสิทธิภาพสูงสุด.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Java Programming Language สาขาวิชาระบบสารสนเทศ คณะบริหารธุรกิจ มหาวิทยาลัยเทคโนโลยีราชมงคลกรุงเทพ.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Thread
Thread Thread ส่วนของ process ที่ให้ CPU ประมวลผล.
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
The ServerSocket Class ใช้ในการจัดทำเครื่องที่เป็นการบริการ ใช้ในการจัดทำเครื่องที่เป็นการบริการ โดยจะมี ช่วงชีวิตดังนี้ โดยจะมี ช่วงชีวิตดังนี้
Object Oriented Programming Handling Exceptions
Method of Class อ.สุพจน์ สิงหัษฐิต
การเขียนโปรแกรม JAVA ขั้นพื้นฐาน
Nattapong Songneam BankAccount – Example Nattapong Songneam
การสร้าง WebPage ด้วย Java Script Wachirawut Thamviset.
Chapter 3 Simple Supervised learning
21 August ดรุณี ศมาวรรตกุล 1 2. ADT List - Unsorted list ADT - list implementation - Sorted List - Circular list - Doubly linked list.
Advanced Class Design in Java Java Packages Week #6 Jarungjit Parnjai
Java Array and String Jarungjit Parnjai
Object-Oriented Programming with Java Burapha University, 2001 Java Array and String Week #3 Jarungjit Parnjai.
Burapha University, 2001 Object-Oriented Analysis and Design Design Patterns Iterator Week #11 Jarungjit Parnjai.
Lecture 7 Java Exceptions. Errors  Compile-time Errors  เกิดขึ้นระหว่าง compile ตรวจสอบได้ด้วย Compiler  เช่น ผิดหลักไวยากรณ์  Run-time Error  เกิดขึ้นระหว่างประมวลผล.
บทที่ 3 Class and Object (2).
บทที่ 4 คำสั่งควบคุมแบบมีทางเลือก
บทที่ 5 คำสั่งควบคุม แบบวนซ้ำ รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 5.
Java Programming Java Structure and Datatype,Variable
Java Network Programming 1
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
TECH30201 Object-Oriented Programming
การจัดการกับความผิดปกติ
Chapter 6 Abstract Class and Interface
การเขียนโปรแกรมบนมาตรฐานเปิด โครงสร้างโปรแกรม public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World”);
Chapter 5 การจัดการข้อผิดพลาด (Exception Handling)
Starting JAVA : JAVA PROGRAMMING (การ โปรแกรมภาษาจาวา) มัลลิกา เกลี้ยงเคล้า | SC1419.
โครงสร้างของโปรแกรมเกมคอมพิวเตอร์
ใบสำเนางานนำเสนอ:

Object-Oriented Programming with Java Burapha University, 2001 Java Exceptions Week #9 Jarungjit Parnjai

Object-Oriented Programming with Java Burapha University, 2001 Lecture Outline  Defining Exceptions  Difference between Error and Exception  “try”, “catch” and “finally” statement  Exception categories  Identify Common Exceptions  Programming with one’s own exceptions  Using printStackTrace

Object-Oriented Programming with Java Burapha University, 2001 Errors  Compile-time Errors  เกิดขึ้นระหว่าง compile ตรวจสอบได้ ด้วย Compiler  เช่น ผิดหลักไวยากรณ์  Run-time Error  เกิดขึ้นระหว่างประมวลผล (run)  เช่น Divide by zero, การอ้างอิง array ที่ “out of bounds”, อ้างอิง “null pointer”  จะรู้ได้อย่างไรว่าเกิด Run-time Errors?

Object-Oriented Programming with Java Burapha University, 2001 Handling Run-time Errors  เมื่อเกิด Run-time Error เราอาจ  หยุดการประมวลผลส่วน Source code ปัจจุบัน  jump ไปยังส่วนของ Source code ที่ เป็น Error Handling Routine  จัดการ Errors  ทำงานต่อ หรือ หยุดการทำงาน  เมื่อเกิด Run-time Error ต้อง Interrupt การควบคุมการทำงานปกติ

Object-Oriented Programming with Java Burapha University, 2001 Exceptions  Exception กำหนด “mild” Error Condition  Exceptions เกิดขึ้นเมื่อ  ไม่มีไฟล์ที่ต้องการเปิด  การเชื่อมต่อ Network สะดุด  Operands ที่เรียกใช้อยู่นอกขอบเขตที่ กำหนด  ไม่มีไฟล์คลาสที่ต้องการ load  …  คลาส Error กำหนด “Serious” Error Condition

Object-Oriented Programming with Java Burapha University, 2001 Exception Example public class HelloWorld { public static void main(String args[]) { int i=0; String greeting[] = { "Hello world!", "No, I mean it!", "HELLO WORLD!!!” }; while (i<4) { System.out.println(greeting[i]); i++; } System.out.println("End of program."); } > java HelloWorld Hello world! No, I mean it! HELLO WORLD!!! java.lang.ArrayIndexOutOfBoundsException: 3 at HelloWorld.main(HelloWorld.java:10) >

Object-Oriented Programming with Java Burapha University, 2001 Handling Exception in Java  ใช้ในการตรวจจับ Error ก่อนที่จะ เกิดขึ้น  ทำได้ 2 วิธี  การใช้ประโยค try-catch-finally กำหนดส่วนของ source code ที่ต้องการ ให้จัดการ Exceptions  การใช้ประโยค throws ในการโยน (throw) การ Exceptions ไปให้กับ method ที่เป็นคนเรียกใช้งานให้ทำการ จัดการ Exceptions

Object-Oriented Programming with Java Burapha University, 2001 “try” and “catch” statement try { // code that might throw a particular exception … } catch (ExceptionType otherException) { // code to execute if a general is thrown … }  Exception ถูกตรวจจับได้โดยการระบุ catch( ) block  อาจมีได้หลาย catch( ) block  ถ้าไม่มีการ thrown Exception การ ทำงานในส่วนของ catch block จะถูกข้าม ไป ไม่ทำงาน

Object-Oriented Programming with Java Burapha University, 2001 Exception Example public class HelloWorld { public static void main(String args[]) { int i=0; String greeting[] = { "Hello world!", "No, I mean it!", "HELLO WORLD!!!” }; try { while (i<4) { System.out.println(greeting[i]); i++; } } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Index Out Of Bound!!!"); } System.out.println("End of program."); }

Object-Oriented Programming with Java Burapha University, 2001 Output of Exception Example > java HelloWorld Hello world! No, I mean it! HELLO WORLD!!! Index Out Of Bound!!! End of program. >

Object-Oriented Programming with Java Burapha University, 2001 “finally” statement try { // code that might throw a particular exception … } catch (ExceptionType otherException) { // code to execute if a general is thrown … } finally { // always execute this following code … }  ส่วนของ Code ใน finally จะถูก ประมวลผลเสมอ ไม่ว่าจะเกิด Exception ในส่วนของ try-catch หรือไม่ก็ตาม

Object-Oriented Programming with Java Burapha University, 2001 Exception Example : try { while (i<4) { System.out.println(greeting[i]); i++; } } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Index Out Of Bound!!!"); System.out.println("Re-setting Index value"); i=0; } finally { System.out.println("This is always printed!."); } :

Object-Oriented Programming with Java Burapha University, 2001 Output of Exception Example > java HelloWorld Hello world! No, I mean it! HELLO WORLD!!! Index Out Of Bound!!! Re-setting Index value This is always printed!. >

Object-Oriented Programming with Java Burapha University, 2001 Another Exception Example : try { startFaucet(); waterLawn(); } catch (BrokenPipeException e) { logProblem(); } finally { stopFaucet() } :

Object-Oriented Programming with Java Burapha University, 2001 Exception Categories Throwable Error Exception Virtual Machine Error Virtual Machine Error AWTError RuntimeException IOException FileNotFoundException EOFException ArrayIndexedOutofBound ArithemeticException NullPointerException StackOverFlowErrpr OutOfMemoryErrpr : : :

Object-Oriented Programming with Java Burapha University, 2001 Common Exceptions  ArithmeticException  NullPointerException  NegativeArrayException  ArrayIndexOutOfBoundsExcept ion  SecurityException

Object-Oriented Programming with Java Burapha University, 2001 Call Stack Mechanism  กรณี current block ที่ Exception ไม่จัดการ try-catch block นั้น Exceptions จะถูกโยน (throw) ต่อไปยังเมทธอดที่เรียกใช้งานส่วนของ try-catch block ได้  กรณี Exception จะถูกโยน (throw) ไปให้เมทธอด main() และ เมทธอด main() ไม่มีการจัดการ try-catch block โปรแกรมจะสิ้นสุดการทำงาน ทันที

Object-Oriented Programming with Java Burapha University, 2001 “throws” clause : public void methodA() throws IOException { // do something crunchching... }… : try { // code to execute methodsA(); …. } catch (IOException e) { // do sometihing … }

Object-Oriented Programming with Java Burapha University, 2001 “throws” clause example public class TestA() { public void methodA() throws RuntimeException { // do some number crunchching } public class TestB1() extends TestA { public void methodA() throws ArithmeticException { // do some numbercrunchching } public class TestB2() extends TestA { // fail to compile > why? public void methodA() throws Exception { // do some number crunchching }

Object-Oriented Programming with Java Burapha University, 2001 “throws” clause example import java.io.*; public class TestMultiA() { public void methodA() throws IOException, RuntimeException { // do some IO stuff } import java.io.*; public class TestMultiB1() extends TestMultiA { public void methodA() throws FileNotFoundException, UTFDataFormatException, ArigthmethicException { // do some IO and number crunchching stuff }

Object-Oriented Programming with Java Burapha University, 2001 “throws” clause example import java.io.*; public class TestMultiB2() extends TestMultiA { public void methodA() throws FileNotFoundException { // do some IO and number crunchching stuff }

Object-Oriented Programming with Java Burapha University, 2001 Creating your own Exceptions public class ServerTimedOutException () extends Exception { private int port; public ServerTimedOutException(String message, int port) { super(message); this.port = port; } public int getPort() { return port; } // use getMessage method to get the reason the exception was made }

Object-Oriented Programming with Java Burapha University, 2001 Example public void connectMe (String serverName) { int success; int portToConnect = 80; success = open(serverName, portToConnect); if (success == -1) { throw new ServerTimedOutException(“Could not connect”, portToConnect); } public void findServer() { try { connectMe (defaultServer); } catch (ServerTimedOutException e) { System.out.println(“Error : ” + e.getMessage() + “ connecting to port ” + e.getPort()); }

Object-Oriented Programming with Java Burapha University, 2001 Using prinStackTrace  คลาส Throwable  เป็น superclass ของทุก Exceptions  เมทธอด printStackTrace( )  เรียก Stack สำหรับจัดการ Exception โดย เมทธอดล่าสุดที่ เกิด Exception จะอยู่บน top ของ Stack  ใช้สำหรับ testing และ debuging

Object-Oriented Programming with Java Burapha University, 2001 Using prinStackTrace Example 1 public class UsingExceptions { 2 public static void main(String args[]) { 3 try { 4 method1(); 5 } catch (Exception e) { e.printStackTrace( ); } 6 } 7 public static void method1() throws Exception { 8 method2(); 9 } 10 public static void method2() throws Exception { 11 method3(); 12 } 13 public static void method3() throws Exception { 14 throw new Exception(”Exception thrown in method3") ; 15 } 16 }

Object-Oriented Programming with Java Burapha University, 2001 Output of Using printStackTrace Example > java UsingExceptions java.lang.Exception: Exception thrown in method3 at UsingExceptions.method3(UsingExceptions.java:14) at UsingExceptions.method2(UsingExceptions.java:11) at UsingExceptions.method1(UsingExceptions.java:8) at UsingExceptions.main(UsingExceptions.java:4) >

Object-Oriented Programming with Java Burapha University, 2001 Summary  Defining Exceptions  Difference between Error and Exception  “try”, “catch” and “finally” statement  Exception categories  Identify Common Exceptions  Programming with one’s own exceptions  Using printStackTrace