Handling Exceptions & database

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
สถาปัตยกรรมเทียร์ TIER ARCHITECTURE.
Advertisements

การจัดการความผิดพลาด
บทที่ 4 Method (1).
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 22 มิถุนายน 2550 ความผิดพลาดที่พบ บ่อย มหาวิทยาลัยเนชั่น.
การติดต่อกับฐานข้อมูล(MySQL)
Handling Exceptions & database
โครงสร้างควบคุมการทำงาน
Object Oriented Programming Handling Exceptions
การจัดการกับความผิดปกติ
Array ธนวัฒน์ แซ่ เอียบ. The concept of array อาเรย์ : กลุ่มของข้อมูลที่มีชนิดเดียวกันและถูก จัดเก็บเรียงลำดับต่อเนื่องกัน ตัวแปร x สามารถจัดเก็บค่ามากกว่า.
บทที่ 6 บทที่ 6 คำสั่งแก้ไขปัญหาแบบ เลือก (CONDITION)
JSP ติดต่อฐานข้อมูล.
Server Object. 2 z ใช้ในการควบคุม และบริหารเว็บเซิร์ฟเวอร์ ซึ่งทำด้วยการเขียนสคริปต์ใน แอปพลิเคชั่น ASP ( โดยเรียกใช้เมธอด หรือกำหนดค่าพรอพเพอร์ตี้ของ.
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
ชนิดของข้อมูล และการคำนวณทางคณิตศาสตร์
1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
หน่วยที่ 6 แถวลำดับ (Array)
Queue Sanchai Yeewiyom School of Information & Communication Technology University of Phayao.
ตัวแปร และชนิด ข้อมูล. ตัวแปร การกำหนดตัวแปรเป็นการใช้ ชื่อตัวแปรแทน ตำแหน่งบนหน่วยความจำ สำหรับเก็บ ข้อมูลระหว่างการ ประมวลผล ซึ่งอาจเป็นข้อมูลนำเข้า.
ARRAY & PRINTF สาขางานคอมพิวเตอร์ธุรกิจอาจารย์จิรา ภรณ์ เขตกุฎี
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
คำสั่งควบคุมการทำงาน
เกม คณิตคิดเร็ว.
SQL Structured Query Language.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การประมวลผลแบบวน ( LOOP )
รายการ(List) [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การติดต่อกับฐานข้อมูล(MySQL)
IP-Addressing and Subneting
Introduction to VB2010 EXPRESS
IP-Addressing and Subneting
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
การจัดการระบบฐานข้อมูล ภาษาที่ใช้ในระบบจัดการฐานข้อมูล
แล้วทำการเรียงลำดับข้อมูลใหม่โดยเรียงจากน้อยไปหามาก
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
BC320 Introduction to Computer Programming
Chapter 5 การจัดการข้อผิดพลาด (Exception Handling)
ดิจิตอล + เลขฐาน บทที่ 2.
โครงสร้างภาษา C Arduino
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
บทที่ 13 การจัดการไฟล์ (File Management)
คำสั่ง Create , Insert, Delete, Update
Creating And Using Exceptions
The Collections Framework
บทที่ 3 แฟ้มข้อมูลและฐานข้อมูล
หลักการ และ วิธีการ ของ บี.-พี.
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
ระบบการจัดการคลินิกครบวงจร
Object-Oriented Programming Paradigm
Java Translation Object and Class ในมุมมองคอมพิวเตอร์ Objects หรือ Instances หมายถึงวัตถุที่กำเนิดตัวตนจริงๆจากต้นแบบที่กำหนดโดยคลาส Object.
Method and Encapsulation
บริษัท พัฒนาวิชาการ (2535) จำกัด
การเขียนภาษาจาวาเบื้องต้น
Week 5 C Programming.
SMS News Distribute Service
คำสั่งวนรอบ (Loop).
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
หน่วยที่ 6 อะเรย์ของอักขระ
OPERATOR ภาษาปาสคาล (Pascal)
Chapter 10 Exception Handling
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
Chapter 3 : Array.
File.
Array Sanchai Yeewiyom
Array: One Dimension Programming I 9.
การเขียนโปรแกรมคอมพิวเตอร์ แบบภาษาเชิงวัตถุ
ฟังก์ชันของโปรแกรม Computer Game Programming
Decision: Single and Double Selection (if and if-else statement)
ใบสำเนางานนำเสนอ:

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