Prova a catturare i blocchi in SQL Server

Prova a catturare i blocchi in SQL Server
Non importa quanto il tuo codice cerchi di essere perfetto, c'è sempre una possibilità di errori. Pertanto, è meglio implementare misure di gestione degli errori per catturare e gestire errori prima di rompere la funzionalità delle applicazioni.

In questa guida, imparerai come implementare la gestione degli errori in SQL Server utilizzando i blocchi di prova e catturare.

Se stai cercando di imparare come generare messaggi di errore definiti dall'utente, controlla il nostro tutorial sul tutorial SQL Server Raiserror.

introduzione

Il tentativo di catturare i blocchi nel server SQL ti consente di prevedere e gestire con grazia gli errori che possono verificarsi nelle query SQL.

Innanzitutto, racchiudere le query SQL che possono causare errori all'interno di un blocco di prova. È quindi possibile aggiungere un blocco di cattura una volta sollevato un'eccezione.

La sintassi per un blocco di prova è mostrata:

Inizia prova
-- Prova a eseguire queste dichiarazioni
fine prova;

Dopo il blocco Try, è possibile impostare un blocco di cattura che segue la sintassi simile come mostrato:

Inizia Catch
-- dichiarazioni di cattura
Fine Catch

Innanzitutto, il server SQL proverà a eseguire il codice all'interno del blocco di prova. Se non si verifica alcun errore/eccezione, salta il blocco di cattura e procede con l'esecuzione.

Tuttavia, se si verifica un errore all'interno del blocco di prova, l'esecuzione salta all'interno della cattura ed esegue il codice all'interno di quel blocco.

La sintassi per un blocco di prova/catch completo è mostrata:

Inizia prova
-- Prova a gestirmi
fine
Inizia Catch
-- Corri Meiferrorintry
gat end;

È possibile implementare misure per gestire l'errore rialzato all'interno del blocco di cattura, come la visualizzazione di messaggi utilizzando le istruzioni di raiserror e di stampa. Ricorda, il messaggio di errore all'interno del blocco di cattura non viene restituito all'applicazione a meno che non si utilizzi meccanismi, come un'istruzione selezionata.

È possibile utilizzare funzioni speciali per ottenere informazioni dettagliate sull'errore:

  1. ERROR_NUMBER () - Restituisce un ID messaggio interno per l'errore.
  2. ERROR_SEVERITY () - mostra il livello di gravità dell'errore. Un valore compreso tra 0 e 25 con una gravità maggiore indica un alto livello di gravità. Nota un valore di gravità di 20 - 25 è fatale.
  3. ERROR_STATE - Stato del messaggio di errore. Un valore compreso tra 0 - 255.
  4. ERROR_MESSAGE - Un messaggio descrittivo dell'errore che si è verificato.
  5. ERROR_PROCEDURE () - mostra il nome della funzione, del trigger o della procedura memorizzata in cui è stato sollevato l'errore.

Assicurarsi di utilizzare le funzioni precedenti all'interno di un blocco di cattura; Altrimenti, restituiranno un valore nullo.

SQL Server Try/Catch Esempi

Usiamo una divisione per zero errore per illustrare come utilizzare il blocco try/catch. Inizia creando una procedura come mostrato nelle seguenti domande:

-- Ottieni informazioni sull'errore
createprocedureget_errorinfo
COME
selecterror_number () aserrornumber,
ERROR_SEVERITY () Asseverità,
Error_state () aserrorstate,
ERROR_PROCEDURE () ASERRORPROCEDURE,
Error_message () aserrrormessage,
Error_line () aserrorline
INIZIO
-- Dividebyzeroerror
Seleziona 1/0;
fine
Inizia Catch
-- Esegui proceduretogeterrorRorInfo
Esegget_errorinfo;
fine cattura;

Nell'esempio sopra, creiamo una procedura memorizzata per recuperare informazioni su un errore. Quindi, solleviamo un errore immergendoci di zero.

Se eseguiamo la query sopra, dovremmo ottenere un output come:

Cosa succede se non vi è alcun errore nel blocco di cattura come mostrato:

INIZIO
-- nessun errore
Select100/5asResult;
fine
Inizia Catch
-- Esegui proceduretogeterrorRorInfo
Esegget_errorinfo;
gat end;

Poiché non vi è alcun errore nel blocco Try, il server SQL salta i blocchi di cattura e restituisce il risultato. Un risultato di esempio è come mostrato:

Conclusione

Questa guida ha coperto l'implementazione e l'utilizzo della gestione degli errori nel server SQL utilizzando i blocchi Try/Catch. Inoltre, sono state spiegate e fornite funzioni speciali per recuperare informazioni dettagliate sull'errore. Speriamo che tu abbia trovato questo articolo utile. Scopri altri articoli di suggerimento Linux per suggerimenti e informazioni sui server SQL.