Handling Exceptions & database

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

Suphot Sawattiwong Array ใน C# Suphot Sawattiwong
The InetAddress Class.
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
การจัดการความผิดพลาด
Department of Computer Business
Control structure part II
File.
การใช้ PHP ติดต่อกับ Text File
โครงสร้างภาษาซี.
05_3_Constructor.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
การเขียนโปรแกรมภาษาจาวาตอนที่ ๓
ครั้งที่ 7 Composition.
หลักการเชิงวัตถุ อาจารย์ศิริพร ศักดิ์บุญญารัตน์
Arrays.
Selected Topics in IT (Java)
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
การสืบทอด (Inheritance)
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
บทที่ 3 Class and Object (1) การสร้างและการใช้งานคลาส
คลาสและวัตถุ (2) (Class & Object)
บทที่ 1 หลักการเขียนโปรแกรมเชิงวัตถุ
คลาสและวัตถุ (3) (Class & Object)
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
บทที่ 4 Method (1).
การสืบทอดคุณสมบัติ (Inheritance)
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 บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 มิถุนายน 2550 Method of Class มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 7 มิถุนายน 2556 Text File Processing มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 22 มิถุนายน 2550 ความผิดพลาดที่พบ บ่อย มหาวิทยาลัยเนชั่น.
บทที่ 8 อาร์เรย์.
บทที่ 6 เมธอด.
ทำงานกับ File และStream
โครงสร้างควบคุมการทำงาน
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
โปรแกรมภาษาจาวาเบื้องต้น Basic Java Programming 3(2-2-5)
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
Object Oriented Programming Handling Exceptions
Method of Class อ.สุพจน์ สิงหัษฐิต
การใช้ PHP ติดต่อกับ Text File
บทที่ 4 คำสั่งควบคุมแบบมีทางเลือก
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
Java collection framework
Java Programming Java Structure and Datatype,Variable
สายอักขระ เขียนโปรแกรม Java เบื้องต้น.
Java Network Programming 1
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
TECH30201 Object-Oriented Programming
ตัวแปร และชนิดข้อมูล.
การจัดการกับความผิดปกติ
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
เริ่มต้นเขียนโปรแกรมภาษาจา วา (Introduction to JAVA Programming)
Chapter 6 Abstract Class and Interface
Handling Exceptions & database
Chapter 5 การจัดการข้อผิดพลาด (Exception Handling)
Creating And Using Exceptions
Object-Oriented Programming Paradigm
Java Translation Object and Class ในมุมมองคอมพิวเตอร์ Objects หรือ Instances หมายถึงวัตถุที่กำเนิดตัวตนจริงๆจากต้นแบบที่กำหนดโดยคลาส Object.
Chapter 10 Exception Handling
ใบสำเนางานนำเสนอ:

Handling Exceptions & database

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

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

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) ความผิดพลาดนั้นไปยังตำแหน่งที่เกิดความผิดพลาด

ตัวอย่าง Exception Classes

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

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

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

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

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

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

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

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

ตัวอย่างการใช้ 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");

ตัวอย่างการใช้ 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");

ตัวอย่างการใช้ 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");

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

ตัวอย่าง 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");

ตัวอย่างประยุกต์ใช้กับ 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(); }

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

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 ");

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

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

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

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

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

The End