程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 基本違例

基本違例

編輯:關於JAVA

“違例條件”表示在出現什麼問題的時候應中止方法或作用域的繼續。為了將違例條件與普通問題區分開,違例條件是非常重要的一個因素。在普通問題的情況下,我們在當地已擁有足夠的信息,可在某種程度上解決碰到的問題。而在違例條件的情況下,卻無法繼續下去,因為當地沒有提供解決問題所需的足夠多的信息。此時,我們能做的唯一事情就是跳出當地環境,將那個問題委托給一個更高級的負責人。這便是出現違例時出現的情況。
一個簡單的例子是“除法”。如可能被零除,就有必要進行檢查,確保程序不會冒進,並在那種情況下執行除法。但具體通過什麼知道分母是零呢?在那個特定的方法裡,在我們試圖解決的那個問題的環境中,我們或許知道該如何對待一個零分母。但假如它是一個沒有預料到的值,就不能對其進行處理,所以必須產生一個違例,而非不顧一切地繼續執行下去。

產生一個違例時,會發生幾件事情。首先,按照與創建Java對象一樣的方法創建違例對象:在內存“堆”裡,使用new來創建。隨後,停止當前執行路徑(記住不可沿這條路徑繼續下去),然後從當前的環境中釋放出違例對象的句柄。此時,違例控制機制會接管一切,並開始查找一個恰當的地方,用於繼續程序的執行。這個恰當的地方便是“違例控制器”,它的職責是從問題中恢復,使程序要麼嘗試另一條執行路徑,要麼簡單地繼續。
作為產生違例的一個簡單示例,大家可思考一個名為t的對象句柄。有些時候,程序可能傳遞一個尚未初始化的句柄。所以在用那個對象句柄調用一個方法之前,最好進行一番檢查。可將與錯誤有關的信息發送到一個更大的場景中,方法是創建一個特殊的對象,用它代表我們的信息,並將其“擲”(Throw)出我們當前的場景之外。這就叫作“產生一個違例”或者“擲出一個違例”。下面是它的大概形式:
if(t == null)
throw new NullPointerException();

這樣便“擲”出了一個違例。在當前場景中,它使我們能放棄進一步解決該問題的企圖。該問題會被轉移到其他更恰當的地方解決。准確地說,那個地方不久就會顯露出來。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved