程式語言特色:異常難免

海微發表於2012-09-05
 耶和華神吩咐他說:“園中各樣樹上的果子,你可以隨意吃,只是分別善惡樹上的果子,你不可吃,因為你吃的日子必定死。” 

《創世記》 2:16-17

"生命誠可貴,愛情價更高。若為自由故,兩者皆可拋。" 詩人告訴我們自由是這個世界上最美好的東西。上帝創造亞當時,沒有把他造成一個機器人,而是給了他一定的自由,即可吃、可不吃分別善惡樹上的果子。如果當時亞當沒吃的話,恐怕我現在不會在這敲程式碼,你也不會在這看我的文字。可是經上畢竟記著,亞當吃了,在上帝看來這就是犯罪。全能全知的上帝,或許早就知道會有這樣的情況,做了兩手準備。如果亞當和夏娃犯了罪,就會懲罰他們,並且預備了救恩,即如經上所說,耶穌道成了肉身,來到人間,被釘十字架,用他的寶血洗去了人類的罪。
用程式設計的思維來理解,這就是程式中的異常。程式啟動了,理想情況是一直往下面執行,直到結束,期間不出現任何什麼差錯。然而,正如這個世界是不完美的,程式是對現實世界的模擬,因此程式也難以做到盡善盡美。再說,人是不完美的,不完美的人能寫出完美的程式來嗎?

程式語言翻譯

先定義一個犯罪的異常,如果亞當吃了分別善惡樹上的果子,就丟擲這個異常,並捕捉這個異常進行處理。當然,這種犯罪的異常大概只有人生的程式中才有,定然不會出現在實際的專案開發中。在實際開發中,更多的是諸如操作檔案時,找不到檔案的異常、或取陣列中的資料時下標越界的異常、或連線網路時無法連線的異常等。

程式碼清單1:CrimeException類原始碼

package crimeException;

/** * 亞當有吃不吃禁果的自由,吃了就犯了罪,要丟擲異常。 */ public class CrimeException extends Exception {

public CrimeException(String message) {
    super(message);
}

}

亞當本來是在伊甸園裡呆的好好的,和夏娃過著小兩口的甜蜜日子,可惜因為蛇的引誘,吃了不該吃了果子,犯了罪,丟擲了犯罪的異常,並且異常被捕捉,上帝進行了一系列的處理。同樣的,在切實的開發中,如果程式有可能發生異常,其一應該丟擲,這樣有利於往後的系統維護;其二,最好對異常有指定的相應處理,這樣可以提高系統的穩定性、健壯性。

程式碼清單2:Adam類原始碼

package crimeException;

/** * 伊甸園裡的亞當 * */ public class Adam {

/**
 * 是否吃了禁果
 * @return
 */
public static boolean hasEatTheForbiddenFruit(){

    //蛇引誘夏娃和亞當吃了禁果,所以返回true
    return true;
}

public static void main(String[] args){

    System.out.println(" 耶和華神吩咐他說,園中各樣樹上的果子,你可以隨意吃。"+
            " 只是分別善惡樹上的果子,你不可吃,因為你吃的日子必定死。 (創世紀2:16-17)");


    try{
        //如果亞當吃了分別善惡樹上的果子,丟擲犯罪的異常,並進行處理
        if(Adam.hasEatTheForbiddenFruit() == true){

            throw new CrimeException("亞當吃了分別善惡樹上的果子,犯罪了!!!");

        }else{

            //如果亞當沒有吃分別善惡樹上的果子
            System.out.println("如果亞當沒有吃分別善惡樹上的果子,呵呵,我也不知道會是什麼結局。"
                    +"或許我現在在伊甸園裡,不會在這敲程式碼。或許根本沒有我。");
        }


    //捕捉亞當犯罪的異常
    }catch(CrimeException exception){

        //如果亞當吃了分別善惡樹上的果子,要進行一系列的處理。
        System.out.println(exception.getMessage());
        System.out.println("1、被趕出伊甸園,受懲一系列的懲罰。");
        System.out.println("2、預備救恩:耶穌道成了肉身,來到人間,被釘十字架。");
    }

}

}

相關文章