Generazione di un'eccezione

Se si rileva un errore o un'altra situazione nel flusso di messaggi in cui si desideri che l'elaborazione del messaggio venga completata, è possibile generare un'eccezione in un flusso di messaggi in due modi:

  1. Utilizzare l'istruzione ESQL THROW EXCEPTION.

    Includere l'istruzione THROW ovunque nel modulo ESQL per un nodo Compute, Database o Filter. Utilizzare le opzioni nell'istruzione per codificare i propri dati da inserire nell'eccezione.

  2. Includere un nodo THROW nel flusso di messaggi.

    Impostare le proprietà del nodo per identificare l'origine e il contenuto dell'eccezione.

Utilizzando le opzioni dell'istruzione o le proprietà del nodo, è possibile specificare un identificativo del messaggio e i valori inseriti nel testo del messaggio per fornire ulteriori informazioni e identificazione agli utenti che interpretano l'eccezione. E' possibile specificare qualsiasi messaggio in qualsiasi catalogo disponibile per il broker. Consultare Utilizzo della registrazione eventi da un'estensione definita dall'utente per ulteriori informazioni.

Le situazioni in cui si potrebbe generare un'eccezione sono determinate dal funzionamento del flusso di messaggi; stabilire, al momento della progettazione del flusso di messaggi, dove questa azione potrebbe essere appropriata. Ad esempio, si potrebbe voler esaminare il contenuto del messaggio di input per assicurarsi che rispetti dei criteri che non possono essere rilevati dal nodo di input (che potrebbe controllare che venga ricevuto un formato particolare del messaggio).

L'esempio riportato di seguito utilizza il messaggio di esempio Invoice per mostrare come utilizzare l'istruzione ESQL THROW. Se si desidera controllare che il numero di fattura rientri in un intervallo particolare, generare un'eccezione per tutti i messaggi relativi alla fattura che non rientrano nell'intervallo valido.

--Controllare il numero di fattura inferiore all'intervallo consentito
IF Body.Invoice.InvoiceNo  < 100000 THEN
   THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1234 VALUES
   ('Invoice number too low', Body.Invoice.InvoiceNo);

-- Controllare il numero di fattura superiore all'intervallo consentito
ELSEIF Body.InvoiceNo > 500000 THEN
      THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1235 VALUES
   ('Invoice number too high', Body.Invoice.InvoiceNo);

ELSE DO
  -- il numero di fattura rientra nell'intervallo consentito
  -- completare la normale elaborazione
ENDIF;
Concetti correlati
Panoramica dei flussi di messaggi
Struttura ad albero ExceptionList
Panoramica di ESQL
Creazione di modelli di messaggio
Attività correlate
Progettazione di un flusso di messaggi
Definizione del contenuto del flusso di messaggi
Gestione degli errori nei flussi di messaggi
Gestione dei file ESQL
Riferimenti correlati
Nodo Compute
Nodo Database
Nodo Filter
Riferimento ESQL
Istruzione THROW
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac17150_