Java咖啡館——編寫猜數(shù)字游戲(3)
發(fā)表時間:2023-08-09 來源:明輝站整理相關軟件相關文章人氣:
[摘要]舉個具體的例子來熟悉一下。猜數(shù)字游戲需要從控制臺獲取玩家輸入的數(shù)字。我們先定義一個整型變量:int guess; 然后就可以編寫如下代碼:guess = Integer.parseInt(inpu...
舉個具體的例子來熟悉一下。猜數(shù)字游戲需要從控制臺獲取玩家輸入的數(shù)字。我們先定義一個整型變量:
int guess;
然后就可以編寫如下代碼:
guess = Integer.parseInt(input.readLine());
通過input.readLine從控制臺讀取輸入,并且用Integer.parseInt把獲取的字符串類型的輸入轉換成整型,然后賦給guess變量。
Eclipse又給你臉色看了——input.readLine()下面劃上了紅線(見圖3)。
看看提示,原來是未處理異常句柄。
原來,Java有一種異常稱作檢查型異常(Checked Exceptions)。一般數(shù)組越界、除以零等等都是運行時異常,由于數(shù)量眾多,Java允許你不必親自捕捉每個這樣的異常,而全權交給運行時環(huán)境去處理。但檢查型異常就不一樣了,Java把檢查型異常提升到與參數(shù)、返回值同樣的高度,也就是說,檢查型異常你非處理不可,并且在javadoc中必須加以注釋。
那么怎樣快速地捕捉這樣的異常呢?按照如圖3所示,用鼠標點擊帶有紅叉的燈泡圖標,在彈出菜單上選擇Surround with Try/Catch,異常處理代碼模塊立即自動生成了?梢园l(fā)現(xiàn),這一句話將拋出兩個異常:一個是格式異常(NumberFormatException),因為如果你用Integer.parseInt去轉換一個漢字,自然是不可能的。另一個便是I/O異常,即標準輸入可能會出現(xiàn)不可預料的問題。怎么樣,連異常都能夠自動捕捉,這就是Eclipse的魅力!
需要說明的是,NumberFormatException并不是檢查型異常,而是一個不必刻意捕捉的運行時異常。試試看把捕捉NumberFormatException的那個catch語句塊全部刪除,Eclipse也不會報錯。不過,捕捉這個異常很有實用價值,后文的代碼會進一步展示它的作用。
小提示
使用異常機制的諸多好處
★使得程序更健壯,界面更友善。
★把程序的業(yè)務邏輯與錯誤處理分開,代碼更合理,更美觀。
★異?梢苑謱哟翁幚恚沟么a更簡潔。
★同類的異?梢詺w到一類一起處理,處理更方便。
Java的異常處理機制是一個很大的話題,這里僅僅是展示了冰山一角,以實用為主,希望你能夠自行閱讀擴展知識,并且在編寫代碼過程中注意體會。
while循環(huán)控制
上回的Java咖啡館介紹了for循環(huán)語句,這回需要介紹一個它的“親戚”語句——while語句。
while語句的語法是:
while ( expression ) {
statement(s)
}