明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Java咖啡館——編寫猜數(shù)字游戲(3)

[摘要]舉個具體的例子來熟悉一下。猜數(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咖啡館——編寫猜數(shù)字游戲(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)
}