Tutti i problemi
vengono riportati sotto forma di un oggetto eccezione, che è una sottoclasse
dell'oggetto eccezione definito da WVCM. Da questo tipo di eccezione il client
può ottenere le seguenti informazioni:
- Un codice motivo (un'estensione di una numerazione WVCM), che classifica il tipo
di incidente riportato (ad esempio, WvcmException.ReasonCode.READ_FAILED).
- Un codice motivo subordinato, che fornisce una classificazione più precisa dell'incidente
nell'ambito della classificazione del codice motivo (ad esempio, StpException.StpReasonCode.CONFLICT).
- Un identificativo messaggio indipendente dalla locale (indice di catalogo) ed i valori dell'argomento
specifici per l'incidente riportato. Queste informazioni sono utili per la registrazione
e possono essere utilizzate anche per generare un messaggio localizzato.
- Un elenco di eccezioni nidificate, ognuna delle quali descrive un incidente subordinato
che ha contribuito all'incidente riportato dall'eccezione.
- Per problemi di accesso alle risorse, la risorsa primaria coinvolta nell'incidente,
che in genere è la risorsa designata dell'operazione non riuscita.
- Per problemi di accesso alle proprietà, la proprietà risorsa primaria
coinvolta nell'incidente.
- Per operazioni che implicano più risorse, un elenco delle risorse
per le quali l'operazione ha avuto esito positivo.
- Per incidenze selezionate, informazioni aggiuntive specifiche per l'incidente
riportato.
Ogni operazione definisce una serie di condizioni antecedenti che devono essere soddisfatte
perché l'operazione riesca. Ad esempio, una risorsa le cui proprietà devono essere lette
deve esistere, una risorsa che ha lo stesso nome della risorsa da creare non
deve esistere, una risorsa di cui deve essere eseguito il checkout deve avere una versione e deve esserne eseguito il checkin.
Le violazioni di queste condizioni antecedenti causano le eccezioni dell'operazione.
Le operazioni possono essere spesso applicate ad una raccolta di risorse. Se per una di esse l'operazione non
riesce, viene generata un'eccezione (con gli esiti positivi riportati
nell'oggetto eccezione).
I problemi che il server rileva durante la lettura o la scrittura delle proprietà o
delle meta proprietà di una risorsa non causano un'eccezione per un'operazione Rational CM API. L'eccezione, invece, viene associata alla proprietà all'interno del
proxy restituito. Solo quando il client tenta di estrarre il valore proprietà
dal proxy viene generata l'eccezione. Il client può anche interrogare il
proxy prima di estrarre il valore proprietà per determinare se vi sono
problemi ed ottenere l'eccezione senza che venga generata. Vedere Ulteriori informazioni relative alle proprietà.
Rational CM
API include i seguenti tipi principali di eccezioni:
- StpException (estende WvcmException)
- StpPropertyException (estende StpException)
- StpPartialResultsException (estende PropertyException)
StpException
StpException è
un'estensione di
WvcmException ed è la classe base di tutte
le eccezioni verificate generate da Rational CM API. Tutte le implementazioni
di metodi definiti per WVCM generano WvcmException. Anche tutti i metodi pubblici di Rational CM
API che sono estensioni di WVCM generano WvcmException. Tuttavia, le
implementazioni di tutti questi metodi generano in modo omogeneo solo StpException,
non WvcmException.
Vengono applicate le seguenti convenzioni:
- La generazione di una StpException non viene mai utilizzata per nessuna dichiarazione di metodo (pubblico
o altro). Anche quando un metodo genera una StpException, viene dichiarata come
WvcmException.
- Un metodo non genera mai una nuova WvcmException. Anche se l'eccezione può essere
espressa come WvcmException, viene sempre generata come una nuova StpException.
StpPropertyException
StpPropertyException estende
StpExtension ed è la classe di eccezioni base per gli errori associati alla
lettura o alla scrittura delle proprietà delle risorse.
Una volta che un valore di proprietà viene
richiesto da un server, il suo nome viene associato al risultato e viene memorizzato
in un proxy. Quel nome viene associato al valore richiamato se il tentativo di richiamo
ha avuto esito positivo o alle informazioni sullo stato (sotto forma di oggetto StpPropertyException)
se ha avuto esito negativo.
StpPartialResultsException
StpPartialResultsException
estende StpPropertyException e viene utilizzato per riportare l'esito negativo di un'operazione
o di una proprietà che coinvolge più risorse. Diviene un sostituto del
ResourceList che in genere viene restituito dall'operazione o dalla proprietà. Contiene
un ResourceList, che include i proxy delle risorse che sono state elaborate correttamente ed un
elenco di StpException, ognuna delle quali corrisponde ad una risorsa per la quale
l'operazione non è riuscita. Per i dettagli vedere le informazioni Javadoc.