Posted by: piman007 | 08-02-2008

ทำอย่างไรให้ throws Exception ข้อความ String ที่เราต้องการ

สวัสดีครับ วันนี้เรามาลองเล่นกับคำสั่ง throws Exception เพื่อให้ throws ข้อความที่เราต้องการ กันบ้างดีกว่า
 
จุดสำคัญอยู่ตรงนี้
 
public void setFirstName(String str) throws Exception {
      if (…) {
                // input is not correct
                throw new Exception("error message you want you want to display");
      }
 }
 
มาลองกันดีกว่า
ผมยกตัวอย่าง input ค่าที่จะนำไปคำนวณเป็น string แล้ว convert เป็น integer (ก็นึกตัวอย่างไม่ออกนี่หน่า)
ผลลัพธ์ที่ส่งออกไป ถ้าถูกหลักมันก็จะ return เป็น int แต่ถ้าผิดล่ะมี error เกิดขึ้นแต่อยากบอกให้ maincalss
รู้ว่าเกิด error ใน function จะ retrun เป็น int ก็ไม่ได้ ต้อง return เป็น string message เราจึงต้องมอบหน้าที่นี้
ให้กับ throw Exception เป็นผู้ส่งสารแทนครับ
 
MainClass
 
/*
 * NewMain.java
 *
 * Created on February 8, 2008, 8:49 AM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */
/**
 *
 * @author Piman Vajalobol
 */
public class NewMain {
   
    /** Creates a new instance of NewMain */
    public NewMain() {
    }
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Calculate objCal = new Calculate();
        try {
            System.out.println("total="+Integer.toString(objCal.sum("ssss","000")));
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
   
}
ลองดูครับ
 
/*
 * Calculate.java
 *
 * Created on February 8, 2008, 8:36 AM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */
/**
 *
 * @author Piman Vajalobol
 */
public class Calculate {
   
    /**
     * Creates a new instance of Calculate
     */
    public Calculate() {
    }
    public int sum(String strA,String strB) throws Exception{
        String strErrMessage   = "";
        int intA     = 0;
        int intB     = 0;
        int intTotal = 0;
        System.out.println("strA="+strA);
        System.out.println("strB="+strB);
        try {
            intA     = Integer.parseInt(strA);
            intB     = Integer.parseInt(strB);
            intTotal = intA + intB;
        } catch (Exception e) {
            strErrMessage  = "Error ei ei !!!n";
            strErrMessage += e.toString();
            throw new Exception(strErrMessage);
        }
        return intTotal;
    }   
}
 
เมื่อ run ผลลัพธ์จะออกมาเป็นเยี่ยงนี้
 
init:
deps-jar:
Compiling 2 source files to D:ProjectNetbeanJavaLibrary27buildclasses
compile:
run:
strA=ssss
strB=000
java.lang.Exception: Error ei ei !!!
java.lang.NumberFormatException: For input string: "ssss"

        at Calculate.sum(Calculate.java:36)
        at NewMain.main(NewMain.java:27)
BUILD SUCCESSFUL (total time: 0 seconds)
 
 
 

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

หมวดหมู่

%d bloggers like this: