程式語言特色:異常難免
耶和華神吩咐他說:“園中各樣樹上的果子,你可以隨意吃,只是分別善惡樹上的果子,你不可吃,因為你吃的日子必定死。”
《創世記》 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、預備救恩:耶穌道成了肉身,來到人間,被釘十字架。");
}
}
}
相關文章
- 程式語言特色:有始有終
- Go 語言異常處理Go
- 程式語言特色:系統說明書
- 用Go語言異常機制模擬TryCatch異常捕捉Go
- C語言異常與斷言介面的實現C語言
- 【C++】 63_C語言異常處理C++C語言
- 10大怪異的程式語言
- C++語言程式設計筆記 - 第12章 - 異常處理C++程式設計筆記
- Java語言和C++語言的差異——老生常談 (轉)JavaC++
- 解決異常:公共語言執行時檢測到無效的程式
- Java語言的12大特色介紹(轉)Java
- Oracle PL/SQL語言初級教程之異常處理OracleSQL
- 程式語言的異同及選擇 (轉)
- 常見的程式語言python怎麼樣?各程式語言有什麼區別?Python
- Flutter (二) Dart 語言基礎詳解 (異常,類,Mixin, 泛型,庫)FlutterDart泛型
- Java語言與C++語言的差異總結JavaC++
- 把程式語言看做語言
- Python與其它程式語言的差異化總結Python
- 關注程式異常流
- C語言程式碼例項助手 v1.0免費版C語言
- 《Go語言高階程式設計》開源免費圖書Go程式設計
- 7本免費的Ruby語言程式設計書籍(英文)程式設計
- 聊聊C語言/C++—程式和程式語言C語言C++
- 最‘乾淨’的程式語言——空白程式語言
- windows核心程式設計---未處理異常,向量化異常處理與C++異常Windows程式設計C++
- Java語言和C++語言的差異 (轉)JavaC++
- 學習C++程式語言的最大難度是什麼(轉)C++
- 難免的尷尬:程式碼依賴
- dart系列之:dart語言中的異常Dart
- Java語言入門級的十二大特色詳細介紹Java
- python是免費的語言嗎?Python
- 小程式異常監控收集
- cpe_em、registrar程式異常
- 程式執行異常: Modulo by zero
- 異常篇——異常處理
- 異常和異常呼叫鏈
- PLSQL程式語言SQL
- sql程式語言SQL