|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.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。