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

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

Handling Exceptions & database

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


งานนำเสนอเรื่อง: "Handling Exceptions & database"— ใบสำเนางานนำเสนอ:

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 คือ class ที่ใช้ในการตรวจสอบความผิดพลาดในการทำงานในระหว่างที่ 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){ ... catch(ExceptionClassNameN objRefN){ finally{

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){ finally{ System.out.println("End");

21 ตัวอย่างการใช้ try-catch block (cont.)
ถ้าเราไม่ทราบชื่อหรือจำชื่อคลาสของ exception ที่ดักจับไม่ได้เราก็ใช้ Exception เป็นพารามิเตอร์ของ Catch block แทนได้ 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");

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 ประกอบพร้อมฟังอธิบายประกอบ การเชื่อมต่อฐานข้อมูล 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.Driver"); 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) { } } //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) { } } //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) { } } //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) { } 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) {

32 The End


ดาวน์โหลด ppt Handling Exceptions & database

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


Ads by Google