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

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

Handling Exceptions & database. Chapter Objectives See how a try/catch block is used to handle exceptions Discover how to throw and rethrow an exception.

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


งานนำเสนอเรื่อง: "Handling Exceptions & database. Chapter Objectives See how a try/catch block is used to handle exceptions Discover how to throw and rethrow an exception."— ใบสำเนางานนำเสนอ:

1 Handling Exceptions & database

2 Chapter Objectives See how a try/catch block is used to handle exceptions Discover how to throw and rethrow an exception Learn how to handle events in a program

3 Exception Exception คือ ความผิดพลาดที่ เกิดขึ้นในขณะที่โปรแกรมกำลังทำงาน ซึ่งสามารถตรวจสอบความผิดพลาดที่ เกิดขึ้นได้ เช่น – การหารตัวเลขใด ๆ ด้วยศูนย์ เช่น 3/0 – พยายามเปิดไฟล์ที่ไม่มีในโฟล์เดอร์ ของเรา – อ้างอิงถึงข้อมูลใน Array ที่อยู่ นอกเหนือจากที่มีอยู่

4 Java ’ s Exception Class Exception Class คือ c lass ที่ใช้ในการ ตรวจสอบความผิดพลาดในการทำงานใน ระหว่างที่ execute-time ซึ่งสามารถแบ่งความผิดพลาดได้หลายอย่าง ดังนี้ –I/O exceptions –Number format exceptions –File not found exceptions –Array index out of bounds exceptions ในขณะที่ java กำลังทำงาน หากมีความ ผิดพลาดเกิดขึ้น java ก็จะสร้าง instance ของ class Exception แล้วโยน (throw) ความผิดพลาดนั้นไปยังตำแหน่งที่เกิดความ ผิดพลาด

5 ตัวอย่าง Exception Classes

6 Exception ที่สําคัญและพบบอยในการเขียน โปรแกรมภาษาจาวา มีดังนี้  NullPointerException เปนขอผิดพลาดที่เกิดจากการเรียกใชออบเจกตที่ ยังไมไดถูกสราง ( ออบเจกตมีคาเปน null)  ArithmeticException เปนขอผิดพลาดที่เกิดจากการหารจํานวนต็มดวย 0  ArrayIndexOutOfBoundsException เปนขอผิดพลาดที่เกิดจากการอางอิงสมาชิก ในอะเรยไมถูกตอง ( นอยกวา 0 หรือเกินกวาสมชิก ของอะเรยที่มีอยู )

7 NumberFormatException เปนขอผิดพลาดที่เกิดจากรูปแบบตัว เลขที่ใชไมถูกตอง  FileNotFoundException เปนการระบุวาไมพบไฟลที่ตองการ  EOFException เปนการระบุวาตําแหนงสิ้นสุดของไฟลผ านมาแลว IOException เปนขอผิดพลาดที่เกิดจากการรับและสงข อมูล

8 Example Exception Throw public class ExceptionDemo { public static void main(String args[]) { int a,b,c; a = 5; b = 0; c = a/b; System.out.println(c); }

9 Example Exception Throw (cont.) public class ExceptionDemo { public static void main(String args[]) { int a[] = {1,2,3}; System.out.println(a[-1]); }

10 การจัดการกับขอผิดพลาดที่เกิดขึ้น (Exception Handling) ในภาษาจาวามีชุดคําสั่งในการ จัดการขอผิดพลาด try- catch throw

11 try-catch try-catch บล็อก try คือการจัด การกลุมคําสั่งที่อาจเกิดขอผิด พลาด จะทําการสงออบเจกต Exception เพื่อสงไปจัดการตอไป บล็อก catch คือคําสั่งภายใน บล็อกจะทําการจัดการกับขอผิด พลาดที่เกิดขึ้น โดยจะตองระบุชนิด ออบเจกตของคลาส Exception ที่ตองการจัดการ รูปแบบ

12 [statements] ที่อยูในบล็อก try คือ ประโยคคําสั่งที่อาจเกิดขอผิดพลาด ExceptionType คือคลาสประเภท Exception ที่ตองจัดการเมื่อมีขอผิด พลาดเกิดขึ้น parameterExceptionName คือชื่อ ออบเจกตที่เปนพารามิเตอร ที่ใชจัดการข อผิดพลาดในบล็อก catch [statements] ที่อยูในบล็อก catch คือ ประโยคคําสั่งที่จัดการกับขอผิดพลาดของ ออบเจกตชื่อ parameterExceptionName

13

14

15

16

17

18 การจัดการ Exceptions ด้วย Java การดักจับ exception ต้องใช้คำสั่ง try-catch block ดังนี้ try{ //statements } catch(ExceptionClassName1 objRef1){ //exception handler code } catch(ExceptionClassName2 objRef2){ //exception handler code }... catch(ExceptionClassNameN objRefN){ //exception handler code } finally{ //statements }

19 ตัวอย่างการใช้ try-catch block public class ExceptionDemo { public static void main(String args[]){ int a,b,c; a = 5; b = 0; try{ c = a/b; System.out.println(c); } catch(ArithmeticException e){ System.out.println(e); } finally{ System.out.println("End"); }

20 ตัวอย่างการใช้ try-catch block (cont.) public class ExceptionDemo { public static void main(String args[]) { int a[] = {1,2,3}; try{ System.out.println(a[4]); } catch(ArithmeticException e){ System.out.println(e); } catch(ArrayIndexOutOfBoundsException e){ System.out.println(e); } finally{ System.out.println("End"); }

21 ตัวอย่างการใช้ try-catch block (cont.) public class ExceptionDemo { public static void main(String args[]) { int a[] = {1,2,3}; try{ System.out.println(a[4]); } catch(Exception e){ System.out.println(e); } finally{ System.out.println("End"); } ถ้าเราไม่ทราบชื่อหรือจำชื่อคลาสของ exception ที่ดักจับไม่ได้เราก็ใช้ Exception เป็นพารามิเตอร์ของ Catch block แทนได้

22 Finally Block โดยปกติโปรแกรมจะดำเนินงานใน try block หรือ catch block แล้วจะต้อง ดำเนินคำสั่งสุดท้ายเสมอก็คือ finally block เพื่อการทำงานบางอย่างเช่น ปิดไฟล์ หรือ คืนหน่วยความจำให้กับระบบ เป็นต้น

23 ตัวอย่าง finally block public class ExceptionDemo { public static void main(String args[]){ for(int i = -2;i <= 2 ;i++) { try{ System.out.println(10/i); } catch(Exception e){ System.out.println("Catch Block"); break; } finally{ System.out.println("Finally Block"); }

24 ตัวอย่างประยุกต์ใช้กับ database ศึกษา slide เกี่ยวกับการติดต่อฐานข้อมูล และการใช้ JDBC ประกอบพร้อมฟัง อธิบายประกอบ การเชื่อมต่อฐานข้อมูล ศึกษา slide เกี่ยวกับการติดต่อฐานข้อมูล และการใช้ JDBC ประกอบพร้อมฟัง อธิบายประกอบ การเชื่อมต่อฐานข้อมูล import java.sql.*; public class AlumniCreate { public static void main(String[] args) { String DBUrl = "jdbc:mysql:///test"; try { Class.forName("org.gjt.mm.mysql.Driver"); Connection conn = DriverManager.getConnection(DBUrl); Statement stmt = conn.createStatement(); stmt.executeUpdate("CREATE TABLE alumni" + " (id varchar(8), name varchar(40), addr varchar(100), grad_year int)"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }

25 import java.sql.*; public class AlumniCreate { public static void main(String[] args) { String DBUrl = "jdbc:mysql:///test"; try { Class.forName("org.gjt.mm.mysql.Driver"); Connection conn = DriverManager.getConnection(DBUrl); Statement stmt = conn.createStatement(); stmt.executeUpdate("CREATE TABLE alumni" + " (id varchar(8), name varchar(40), addr varchar(100), grad_year int)"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }

26 import java.sql.*; import javax.swing.JOptionPane; public class AlumniInsert { public static void main(String[] args) { String DBUrl = "jdbc:mysql:///test"; String name, id, addr, year; boolean stop=true; while(stop){ id = JOptionPane.showInputDialog(null,"Enter: id "); if ( id.equals("STOP") ) { stop = false; break;} int checkend = Integer.parseInt(id); if ( checkend ==0) {stop = false; break; } name = JOptionPane.showInputDialog(null,"Enter: Name "); addr = JOptionPane.showInputDialog(null,"Enter: Address "); year = JOptionPane.showInputDialog(null,"Enter: year ");

27 try { Class.forName("org.gjt.mm.mysql.Driv er"); Connection conn = DriverManager.getConnection(DBUrl); String cmd = "INSERT INTO Alumni (id, name, addr, grad_year) " + " VALUES ('"+ id + "','" + name + "','" + addr + "', " + year+ " ) "; Statement stmt = conn.createStatement(); stmt.executeUpdate(cmd); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } //end while System.exit(0); }

28 import java.sql.*; import javax.swing.JOptionPane; public class Alumniedit { public static void main(String[] args) { String DBUrl = "jdbc:mysql:///test"; String name2edit, id2del, addr, year; boolean stop=true; while(stop){ id2del = JOptionPane.showInputDialog(null,"Enter: id to edit: "); int checkend = Integer.parseInt(id2del); if ( checkend ==0) {stop = false; break; } name2edit = JOptionPane.showInputDialog(null,"Enter: Name to edit: "); try { Class.forName("org.gjt.mm.mysql.Driver"); Connection conn = DriverManager.getConnection(DBUrl); String cmd = "UPDATE alumni SET name ='"+name2edit+"' WHERE id="+id2del; Statement stmt = conn.createStatement(); int result = stmt.executeUpdate(cmd); stmt.executeUpdate(cmd); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } //end while System.exit(0); }

29 import java.sql.*; import javax.swing.JOptionPane; public class Alumnidelete { public static void main(String[] args) { String DBUrl = "jdbc:mysql:///test"; String name, id2del, addr, year; boolean stop=true; while(stop){ id2del = JOptionPane.showInputDialog(null,"Enter: id to delete "); int checkend = Integer.parseInt(id2del); if ( checkend ==0) {stop = false; break; } try { Class.forName("org.gjt.mm.mysql.Driver"); Connection conn = DriverManager.getConnection(DBUrl); String cmd = "DELETE FROM alumni WHERE id = " +id2del; Statement stmt = conn.createStatement(); int result = stmt.executeUpdate(cmd); stmt.executeUpdate(cmd); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } //end while System.exit(0); }

30 import java.sql.*; import javax.swing.JOptionPane; public class Alumnioutfile { public static void main(String[] args) { String DBUrl = "jdbc:mysql:///test"; try { Class.forName("org.gjt.mm.mysql.Driver"); Connection conn = DriverManager.getConnection(DBUrl); String message2 = JOptionPane.showInputDialog(null,"INPUT FILE"); String message = JOptionPane.showInputDialog(null,"OUTPUT 'FILENAME.txt "); // String message = " \"alumni.txt\" "; String cmd = "select * into outfile "+message+" from "+message2+" " ; Statement stmt = conn.createStatement(); stmt.execute(cmd); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } System.exit(0); }

31 import java.sql.*; public class AlumniRetrieval { public static void main(String[] args) { String DBUrl = "jdbc:mysql:///test"; try { Class.forName("org.gjt.mm.mysql.Driver"); Connection conn = DriverManager.getConnection(DBUrl); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM alumni"); while (rs.next()) { System.out.print("ID: " + rs.getString(1)); System.out.print(" Name: " + rs.getString(2)); System.out.println(" Graduation: " + rs.getInt(4)); System.out.println(""); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }

32 The End


ดาวน์โหลด ppt Handling Exceptions & database. Chapter Objectives See how a try/catch block is used to handle exceptions Discover how to throw and rethrow an exception.

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


Ads by Google