|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.lang.Throwable
java.lang.Exception
javax.naming.NamingException
javax.naming.ReferralException
public abstract class ReferralException
此抽象類別用於表示一個參考異常,該異常是在回應某一參考(比如 LDAP v3 伺服器返回的參考)時產生的。
服務提供者通過提供 getReferralInfo() 和 getReferralContext() 的實作(以及適當的建構子和/或相應的 "set" 方法)來提供 ReferralException 的子類別。
以下程式碼範例展示了如何使用 ReferralException。
while (true) {
try {
bindings = ctx.listBindings(name);
while (bindings.hasMore()) {
b = bindings.next();
...
}
break;
} catch (ReferralException e) {
ctx = e.getReferralContext();
}
}
ReferralException 是一個抽象類別。具體的實作確定其同步和序列化屬性。
傳遞給 getReferralContext() 方法的環境屬性歸調用者所有。服務提供者不會修改該物件或保持對它的參考,但會保持對其副本的參考。
| 欄位摘要 |
|---|
| 從類別 javax.naming.NamingException 繼承的欄位 |
|---|
remainingName, resolvedName, resolvedObj, rootException |
| 建構子摘要 | |
|---|---|
protected |
ReferralException()
建構一個新的 ReferralException 實例。 |
protected |
ReferralException(String explanation)
使用所提供的解釋建構一個新的 ReferralException 實例。 |
| 方法摘要 | |
|---|---|
abstract Context |
getReferralContext()
檢索繼續該方法的上下文。 |
abstract Context |
getReferralContext(Hashtable<?,?> env)
使用環境屬性檢索繼續該方法的上下文。 |
abstract Object |
getReferralInfo()
檢索與此參考有關的資訊(比如 URL)。 |
abstract void |
retryReferral()
檢索當前正被處理的參考。 |
abstract boolean |
skipReferral()
放棄將要處理的參考。 |
| 從類別 java.lang.Throwable 繼承的方法 |
|---|
fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, printStackTrace, printStackTrace, printStackTrace, setStackTrace |
| 從類別 java.lang.Object 繼承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| 建構子詳細資訊 |
|---|
protected ReferralException(String explanation)
explanation - 有關此異常的附加詳細資訊。可以為 null。Throwable.getMessage()protected ReferralException()
| 方法詳細資訊 |
|---|
public abstract Object getReferralInfo()
public abstract Context getReferralContext()
throws NamingException
要繼續該操作,客戶端程序應該使用與初始調用相同的參數重新調用該方法。
NamingException - 如果遇到命名異常。調用 retryReferral() 或 skipReferral() 來繼續處理這些參考。
public abstract Context getReferralContext(Hashtable<?,?> env)
throws NamingException
參考上下文是通過使用 env 作為其環境屬性來創建的。當調用者需要將不同的環境屬性用於參考上下文時,應該使用此方法,而不是無參數的重載形式。例如,當需要為參考伺服器提供不同的驗證資訊來創建參考上下文時,可能需要這樣做。
要繼續該操作,客戶端程序應該使用與初始調用相同的參數重新調用該方法。
env - 檢索參考上下文時要使用的環境(可能為 null)。如果為 null,則不使用環境屬性。
NamingException - 如果遇到命名異常。調用 retryReferral() 或 skipReferral() 來繼續處理這些參考。public abstract boolean skipReferral()
getReferralContext,以允許處理其他要繼續的參考。以下程式碼片段展示了一個典型的使用網要。
} catch (ReferralException e) {
if (!shallIFollow(e.getReferralInfo())) {
if (!e.skipReferral()) {
return;
}
}
ctx = e.getReferralContext();
}
public abstract void retryReferral()
getReferralContext,以允許當前參考被重試。以下程式碼片段展示了一個典型的使用網要。
} catch (ReferralException e) {
while (true) {
try {
ctx = e.getReferralContext(env);
break;
} catch (NamingException ne) {
if (! shallIRetry()) {
return;
}
// modify environment properties (env), if necessary
e.retryReferral();
}
}
}
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。