SlideShare a Scribd company logo
1 of 31
Download to read offline
บทท 9
         การจดการกบขอผดพลาด
          (Exception Handling)

           ผศ.ธนศา เครอไวศยวรรณ
           คณะเทคโนโลย(สารสนเทศ
สถาบ,นเทคโนโลย(พระจอมเกล1าเจ1าค2ณทหารลาดกระบ,ง
ว,ตถ2ประสงค8
 แนะน:าข1อผดพลาดท(<อาจเกดข=>นได1ในภาษาจาวา

 แนะน:าคลาสท(เก(<ยวข1องก,บการจ,ดการก,บข1อผดพลาดท(ก:าหนดไว1ใน Java
              <                                   <
  API
 อธบายค:าส,<งท(ใช1ในการจ,ดการก,บข1อผดพลาดคอ ค:าส,ง try,catch และ
                <                                 <
  finally
 อธบายกฎการจ,ดการก,บข1อผดพลาด

 แนะน:าวธ(การสร1างคลาสประเภทข1อผดพลาดข=>นมาใหมI
ขอผดพลาด
 โปรแกรมภาษาจาวาแบงขอผดพลาดทอาจเกดขนขณะรนโปรแกรมเป"น สอง
  ประเภทคอ
   •   Error เป"นขอผดพลาดทไมสามารถแกไขและจดการได เชน
        VirtualMachineError,OutOfMemoryError
   •   Exception เป"นขอผดพลาดทสามารถแกไขหร(อจดการได เชน
         ArrayIndexOutOfBoundsException,FileNotFoundException

 ขอผดพลาดในภาษาจาวาจะก*าหนดเป"นออปเจJคของคลาสตางๆ โดยมคลาส
  Throwable เป"นคลาสราก
คลาสทเกยวของกบขอผดพลาด
คลาสประเภท Exception
 Exception เป"นขอผดพลาดทเกดในขณะรนโปรแกรมภาษาจาวา

 Exception แบงออกเป"นสองประเภท ค(อ
     •   RuntimeException
     •   IOException
   RuntimeException เป"นขอผดพลาดทอาจหลกเลยงไดหากมการเขยน
    โปรแกรมทถ/กตอง
   IOException เป"นขอผดพลาดทภาษาจาวาก*าหนดใหตองมการจดการ
    หากมการเรยกใชเมธอดทอาจเกดขอผดพลาดประเภทนได
คลาสประเภท Exception ท(ส:าค,ญและพบบIอย
                             <
   ArithmeticException
   ArrayIndexOutOfBoundsException
   EOFException
   FileNotFoundException
   InterruptedException
   IOException
   NullPointerException
   NumberFormatException
ตวอยางโปรแกรมทอาจเกดขอผดพลาด
public class ExceptionDemo {
    public static void main(String args[]) {
           System.out.println(args[2]);
           System.out.println("Hello");
    }
}
ค*าสง try..catch
 ภาษาจาวาม(ค(ยเวร8ด try ท(<เปLนค:าส,งท(<ใช1ในการจ,ดการก,บเมธอดหรอค:าส,<ง
               8                     <
  ท(อาจเกดข1อผดพลาดซ=<งจะสIงออปเจJคประเภท Exception ในขณะร,น
    <
  โปรแกรม
 รNปแบบ
             try {
                    [statements]
             }
 โปรแกรมภาษาจาวาจะส,<งงานช2ดค:าส,งท(<อยNในบลJอกท(ละค:าส,<ง และหากเกด
                                  <      I
  ข1อผดพลาดข=นในค:าส,งประเภทใดกJจะม(การสIงออปเจJคของข1อผดพลาด
             >         <
  ประเภท Exception น,นข=>นมา
                     >
ค*าสง try..catch
 ในกรณ(ท(<ต1องการจ,ดการก,บข1อผดพลาดท(<เกดข=>น โปรแกรมจะต1องม(ช2ดค:า
  ส,งอยNIในบลJอกของค(ยเวร8ด catch ท(<จะระบ2ชนดของออปเจJคในคลาส
    <                   8
  ประเภท Exception ท(ต1องการจ,ดการ
                      <
 รNปแบบ

            catch(ExceptionType argumentName){
                   [statements]
            }
ตวอยางโปรแกรมทมการจดการกบขอผดพลาด
public class ExceptionHandlingDemo {
    public static void main(String args[]) {
              try {
                      System.out.println(args[2]);
              } catch(ArrayIndexOutOfBoundsException ex) {
                      System.out.println("There is no third
    command                  line argument");
              }
    }
}
การจ,ดการก,บข1อผดพลาดหลายๆประเภท
 โปรแกรมภาษาจาวาสามารถจะม(ช2ดค:าส,งของบลJอก catch ได1มากกวIา
                                   <
  หน=งช2ดส:าหร,บในแตIละบลJอกค:าส,<ง try
     <
 ชนดของออปเจJคประเภท Exception ท(อยNในช2ดค:าส,<งของบลJอก catch
                                  < I                              จะ
  ต1องเร(ยงตามล:าด,บการสบทอด
 ในกรณ(ท(<ม(ขอผดพลาดเกดข=>น ภาษาจาวาจะพจารณาวIาเปLนข1อผดพลาด
              1
  ชนดใด ซ=<งการท(<จะจ,ดการก,บออปเจJคประเภท Exception น,นจะพจารณา
                                                       >
  จากคลาสท(<ม(การสบทอดตามล:าด,บช,>น
ตวอยางโปรแกรม
public class ExceptionHandlingDemoV2 {
    public static void main(String args[]) {
           try {
                   int i = Integer.parseInt(args[0]);
                   System.out.println(4 / i);
           } catch(ArithmeticException ex) {
                   System.out.println(ex.toString());
           } catch(NumberFormatException ex) {
                   System.out.println("Invalid numeric
    format");
           }
    }
}
ตวอยางโปรแกรมทไมถ/กตอง
public class ExceptionHandlingDemoV3 {
    public static void main(String args[]) {
              try {
                      int i = Integer.parseInt(args[0]);
                      System.out.println(4 / i);
                      System.out.println(args[2]);
              } catch(RuntimeException ex) {
                      System.out.println(ex.toString());
              } catch(ArrayIndexOutOfBoundsException ex) {
                      System.out.println("There is no third
    command                  line argument");
              }
    }
}
บลJอก     finally

 ภาษาจาวาม(ค(ยเวร8ด finally ท(<จะม(ช2ดค:าส,<งอยNIในบลJอกเพ<อระบ2ให1
               8
  โปรแกรมท:าช2ดค:าส,<งด,งกลIาวหล,งจากส>นส2ดการท:างานของช2ดค:าส,งใน
                                                               <
  บลJอก try หรอ catch
 ภาษาจาวาจะท*าช1ดค*าสงในบล2อก finally เสมอ แมวาจะม(ค*าสง return
  ในบล2อก try หร(อ catch กIอนกJตาม กรณเดยวทจะไมท*าช1ดค*าสงในบล2อก
  finally ค(อม(ค*าสง System.exit();
ตวอยางโปรแกรม
public class FinallyDemo {
    public static void main(String args[]) {
           try {
                   System.out.println(args[2]);
                   System.out.println("Hello");
           } catch(ArrayIndexOutOfBoundsException ex) {
                   System.out.println("There is no third
    argument");
           } finally {
                   System.out.println("Finish running the
    program");
           }
    }
}
ตวอยางโปรแกรม
public class FinallyDemoV2 {
   public static void main(String args[]) {
          FinallyDemoV2 obj = new FinallyDemoV2();
          obj.myMethod(args);
   }
   public int myMethod(String args[]) {
          try {
                  System.out.println(args[2]);
                  return 0;
          } catch(ArrayIndexOutOfBoundsException ex) {
                  System.out.println("There is no third
  argument");
          } finally {
                  System.out.println("Finish running the
  program");
                  return 1;
          }
   }
การจ,ดการก,บเมธอดท(สงออปเจJคประเภท Exception
                   < I
 เราสามารถจะจดการก,บออปเจ2คของ Exception โดยใชคลาสทเป"น
  superclass ของ Exception นนได อาทเชน เราสามารถจดการกบ
  FileNotFoundException โดยใช IOException หร(อ Exception
  แทนได
 การจดการก,บ Exception มสองแบบ ค(อ
   •   ใชค*าสง try/catch
   •   ใชค*าสง throws ในการประกาศเมธอดท(จะม(การเร(ยกใช1เมธอดใดๆท(อาจสIง
                                        <                        <
       ออปเจJคประเภท Exception
ค:าส,<ง throws
 รNปแบบการใช1ค:าส,<ง throws ม(ด,งน(>
      [modifier] return_type methodName([arguments]) throws
                                  ExceptionType[,ExceptionType2] {
             ...
      }

 ตวอยาง
      public void openfile(String s) throws
                            FileNotFoundException {
             ...
      }
ค:าส,<ง throws
 เมธอดใดๆสามารถทจะจดการก,บ Exception โดยใชค*าสง throws ได
  มากกวาหนงประเภท
 ต,วอยIาง
      public void openFile(String s)throws
            FileNotFoundException,UnknownHostException {
                   ...
       }

 กรณทมการใชค*าสง throws สงตอไปเร(อยๆ แลวเมธอด main() ซ=<งเร(ยก
  ใช1เมธอดส2ดท1ายท(<ใช1ค:าส,ง throws ไมIม(การจ,ดการก,บออปเจJคประเภท
                            <
  Exception ด,งกลIาว โปรแกรมจะเกดข1อผดพลาดในข,นตอนการร,น
                                              >
  โปรแกรม เม<อม(ข1อผดพลาดของออปเจJคประเภท Exception ด,งกลIาวเกดข=>น
ตวอยางโปรแกรมท(<ไมIม(การจ,ดการก,บ Exception
 public class ExceptionDemo1 {
        public static void main(String args[]) {
                ExceptionDemo1 ex1 = new ExceptionDemo1();
                ex1.method1();
        }
        public void method1() throws ArithmeticException {
                method2();
        }
        public void method2() throws ArithmeticException {
                System.out.println(2/0);
        }
 }
กฎของการก:าหนดเมธอดแบบ overriden
 เมธอดแบบ overriden จะไมIอน2ญาตให1ม(การจ,ดการออปเจJคประเภท
  Exception โดยใช1ค:าส,<ง throws มากชนดกวIาท(<เมธอดเดมจ,ดการอยNIได1
ตวอยางโปรแกรมท(<มเมธอดแบบ overriden ท(<ถNกต1อง
                 (
 import java.io.*;

 public class Parent {
         public void myMethods() throws IOException { }
 }
 ___________________________________________________________

 public class OverrideException extends Parent{
         public void myMethods() throws IOException {
                 new FileInputStream("temp.txt");
         }
 }
ตวอยางโปรแกรมท(มเมธอดแบบ overriden ท(<ไมIถNกต1อง
               < (
  import java.io.*;

  public class Parent {
    public void myMethods() throws FileNotFoundException { }
  }
  __________________________________
  public class OverrideExceptionV2 extends Parent {
          public void myMethods() throws
                          FileNotFoundException,IOException {
                  new FileInputStream("temp.txt");
          }
  }
การสรางคลาสประเภท Exception ขนใหม
 การสร1างคลาสประเภท Exception ข=>นมาใหมI สามารถท:าได1โดยนยามคลาส
  ใดๆให1สบทอดมาจากคลาสท(<ช<อ Exception
 โดยท,วไปคลาสท(<ช<อ Exception จะม( constructor สองรNปแบบคอ
       <
   •   public Exception()
   •   public Exception(String s)

 ด,งน,นคลาสท(<สบทอดมาจากคลาสท(<ช<อ Exception ควรจะม( constructor
       >
  ท,งสองแบบ โดยรNปแบบหน=งจะม( argument ท(ม(ชนดข1อมNลเปLน String
    >                      <                  <
  และม(ค:าส,<งแรกใน constructor เปLนค:าส,<ง super(s);
ตวอยางคลาสประเภท Exception ท(ก:าหนดขนใหม
                             <
public class MyOwnException extends Exception {
       public MyOwnException (String s) {
              super(s);
       }
}
การเข(ยนเมธอดเพ<อสIงออปเจJคประเภท Exception
 เมธอดท(ต1องการสIงออปเจJคประเภท Exception
         <                                           เม<อเกดข1อผดพลาดข=นใน
                                                                       >
  ค:าส,งใด จะต1องเร(ยกใช1ค:าส,<งท(ช<อ
       <                          <     throw   เพ<อจะสร1างออปเจJคของคลาส
  ประเภท Exception ข=นมา
                       >
 รNปแบบ
      throw new ExceptionType([arguments])
 นอกจากน(>ค:าส,งประกาศเมธอดน,นจะต1องม(ค:าส,ง throws เพ<อก:าหนดให1ค:า
                <             >             <
  ส,งในเมธอดอ<นๆท(เร(ยกใช1เมธอดน(ต1องเข(ยนค:าส,<งในการจ,ดการก,บข1อผด
    <             <              >
  พลาดน(>
ตวอยางคลาส FileHandler
import java.io.*;

public class FileHandler {
    public static void openFile(String filename) throws
                                            MyOwnException {
         File f = new File(filename);
         if (!f.exists()) {
                throw new MyOwnException("File Not Found");
         }
    }
}
ตวอยางโปรแกรมท(มการจ,ดการก,บข1อผดพลาด
               < (
public class FileOpener {
    public static void main (String args[]) {
          try {
                  FileHandler.openFile(args[0]);
                  System.out.println("Open successful");
          } catch (MyOwnException ex) {
                  System.err.println(ex);
          }
    }
}
สร2ปเน>อหาของบท
 ข1อด(ประเภทหน=<งของภาษาจาวาคอ เราสามารถเข(ยนโปรแกรมให1ม(การ
    ตรวจจ,บและจ,ดการก,บข1อผดพลาดท(อาจเกดข=นได1 โดยท(<การท:างานไมIตอง
                                  <       >                       1
    หย2ดลง
   Error เป"นขอผดพลาดทไมสามารถแกไขและจดการได สIวน Exception
  เป"นขอผดพลาดทสามารถแกไขหร(อจดการได
 ค:าส,ง try และ catch เปLนค:าส,งท(ใช1ในการตรวจจ,บและจ,ดการก,บข1อผด
       <                        < <
  พลาดท(อาจเกดข=นได1 โดยบลJอกค:าส,<ง catch สามารถม(ได1มากกวIาหน=ง
          <       >                                              <
  บลJอกส:าหร,บในแตIละบลJอกค:าส,<ง try
 ค:าส,ง finally เปLนค:าส,<งท(อยNIตอจากค:าส,<ง try/catch ถNกเร(ยกใช1เสมอ
       <                      < I
    ยกเว1นเจอค:าส,ง System.exit(0); กIอนเทIาน,>น
                  <
สร2ปเน>อหาของบท
 ค*าสง throws จะใสIไว1ตรงค*าสงประกาศเมธอด ส:าหร,บเมธอดท(<ยงไมI
                                                           ,
  ต1องการจ,ดการก,บข1อผดพลาดแตIจะให1เมธอดทเรยกใช1เมธอดน(> เป"นตว
  จดการแทน
 เราสามารถสร1างคลาสประเภท Exception ชนดใหมIขนได1 โดยจะต1อง
                                             =>
  สบทอดมาจากคลาสท(ช<อ Exception และต1องม(การเร(ยกใช1 Constructor
                  <
  ของคลาส Exception ด1วย
แบบฝVกห,ด
 ข1อท(< 1
    •   ทดลองเข(ยนโปรแกรมเพ<อจ,ดการก,บข1อผดพลาด อาทเชIน IOException
        ArrayIndexOutOfBoundsException

 ข1อท(< 2
    •   ทดลองเข(ยนโปรแกรมเพ<อสร1างคลาสของข1อผดพลาดข=>นมาใหมI โดยยกต,วอยIาง
        โปรแกรม Account

More Related Content

What's hot

ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวา
Thanachart Numnonda
 
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)
Wongyos Keardsri
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
JK133
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
Sarocha Makranit
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
Aeew Autaporn
 
Java-Answer Chapter 12-13 (For Print)
Java-Answer Chapter 12-13 (For Print)Java-Answer Chapter 12-13 (For Print)
Java-Answer Chapter 12-13 (For Print)
Wongyos Keardsri
 
บทที่ 5 คลาส
บทที่ 5 คลาสบทที่ 5 คลาส
บทที่ 5 คลาส
Theeravaj Tum
 
Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)
Wongyos Keardsri
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
Finian Nian
 

What's hot (20)

Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
 
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
 
ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวา
 
Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์
 
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
Java-Answer Chapter 05-06
Java-Answer Chapter 05-06Java-Answer Chapter 05-06
Java-Answer Chapter 05-06
 
Java AWT
Java AWTJava AWT
Java AWT
 
Php เงื่อนไขต่างๆ
Php เงื่อนไขต่างๆPhp เงื่อนไขต่างๆ
Php เงื่อนไขต่างๆ
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
7 2โครงสร้าง
7 2โครงสร้าง7 2โครงสร้าง
7 2โครงสร้าง
 
Java-Answer Chapter 12-13 (For Print)
Java-Answer Chapter 12-13 (For Print)Java-Answer Chapter 12-13 (For Print)
Java-Answer Chapter 12-13 (For Print)
 
02 basic
02 basic02 basic
02 basic
 
Java Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented ConceptJava Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented Concept
 
Java-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java ProgrammingJava-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java Programming
 
บทที่ 5 คลาส
บทที่ 5 คลาสบทที่ 5 คลาส
บทที่ 5 คลาส
 
Computer Programming 2.2
Computer Programming 2.2Computer Programming 2.2
Computer Programming 2.2
 
Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 

Similar to Java Programming: การจัดการกับข้อผิดพลาด

Similar to Java Programming: การจัดการกับข้อผิดพลาด (9)

Computer Programming 2.1
Computer Programming 2.1Computer Programming 2.1
Computer Programming 2.1
 
ฟังก์ชั่น Switch
ฟังก์ชั่น Switchฟังก์ชั่น Switch
ฟังก์ชั่น Switch
 
บทที่ 11 การดักจับข
บทที่ 11 การดักจับขบทที่ 11 การดักจับข
บทที่ 11 การดักจับข
 
07 methods
07 methods07 methods
07 methods
 
Java intro
Java introJava intro
Java intro
 
Java-Chapter 08 Methods
Java-Chapter 08 MethodsJava-Chapter 08 Methods
Java-Chapter 08 Methods
 
เมธอด
เมธอดเมธอด
เมธอด
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก.
การเขียนคำสั่งควบคุมแบบมีทางเลือก.การเขียนคำสั่งควบคุมแบบมีทางเลือก.
การเขียนคำสั่งควบคุมแบบมีทางเลือก.
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 

More from Thanachart Numnonda

More from Thanachart Numnonda (20)

Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021
 
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุขประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
 
Planning on Mobile Strategy
Planning on Mobile StrategyPlanning on Mobile Strategy
Planning on Mobile Strategy
 
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทยข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
 
Software Trends Towards AEC 2015
Software Trends Towards AEC 2015Software Trends Towards AEC 2015
Software Trends Towards AEC 2015
 
Personal Cloud
Personal CloudPersonal Cloud
Personal Cloud
 
How would cloud computing Effect to Software Industry?
How would cloud computing  Effect to Software Industry?How would cloud computing  Effect to Software Industry?
How would cloud computing Effect to Software Industry?
 
Impact of cloud computing to Asian IT Industry
Impact of cloud computing  to Asian IT IndustryImpact of cloud computing  to Asian IT Industry
Impact of cloud computing to Asian IT Industry
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
 
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
 
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
 
Cloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆCloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆ
 
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
 
บทความ Google vs. Android
บทความ Google vs. Android  บทความ Google vs. Android
บทความ Google vs. Android
 
IT trends for co-creation
IT trends for co-creationIT trends for co-creation
IT trends for co-creation
 
Technology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software IndustryTechnology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software Industry
 
อยากอยู่ 110 ปี
อยากอยู่ 110 ปี อยากอยู่ 110 ปี
อยากอยู่ 110 ปี
 
Open
OpenOpen
Open
 
Intermediate Java Programming Language (in Thai)
Intermediate Java Programming Language (in Thai)Intermediate Java Programming Language (in Thai)
Intermediate Java Programming Language (in Thai)
 

Java Programming: การจัดการกับข้อผิดพลาด