งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

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

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Object-Oriented Programming with Java Burapha University, 2001 Java Exceptions Week #9 Jarungjit Parnjai."— ใบสำเนางานนำเสนอ:

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

2 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

3 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?

4 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 การควบคุมการทำงานปกติ

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

6 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) >

7 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

8 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 จะถูกข้าม ไป ไม่ทำงาน

9 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."); }

10 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. >

11 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 หรือไม่ก็ตาม

12 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!."); } :

13 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!. >

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

15 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 : : :

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

17 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 โปรแกรมจะสิ้นสุดการทำงาน ทันที

18 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 … }

19 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 }

20 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 }

21 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 }

22 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 }

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

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

25 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 }

26 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) >

27 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


ดาวน์โหลด ppt Object-Oriented Programming with Java Burapha University, 2001 Java Exceptions Week #9 Jarungjit Parnjai.

งานนำเสนอที่คล้ายกัน


Ads by Google