L'attuazione di un errore e Exception Handling Strategy

L'attuazione di un errore e Exception Handling Strategy

  

Problema si desidera implementare un errore pulito e strategia di gestione delle eccezioni nelle applicazioni, per farli scorrere più agevolmente. Theory Naturalmente, si potrebbe sostenere che un errore è una finestra di dialogo e l'altro è generato nella console JavaScript. Il fatto che un browser utilizza una finestra di dialogo per mostrare un errore e l'altro non è un problema del browser, non è un problema di errore. Un modo conciso, di qualificare i due errori è quello di dire che uno rappresenta una pagina HTML inizializzazione errore e l'altro rappresenta una pagina HTML esecuzione errore. Quando attuando una strategia di errore, considerare l'esecuzione tecnica. A livello tecnico, quando il primo carattere viene elaborato, il runtime JavaScript è in esecuzione e può generare un errore. Ma se si verifica un errore tre caratteri nel settore della trasformazione, si sono praticamente impotenti a fare qualcosa. Fino a quando la pagina HTML è stato completamente trasformato, non si deve consentire la gestione degli errori, perché la gestione degli errori quadro potrebbe non essere correttamente inizializzato.

E se un errore si verifica in quel punto, la tua gestione degli errori quadro potrebbe andare via a metà a tre punte. Avere un quadro incompleto tenta di elaborare un errore sarà solo confusione, non aiuta. Il vostro obiettivo dovrebbe essere quello di inizializzare e preparare la gestione degli errori quadro quando la pagina HTML è stato completamente trasformato. Per sapere quando per inizializzare la gestione degli errori quadro, è necessario sapere quando finisce l'inizializzazione delle pagine HTML e di runtime pagina HTML inizia. Tecnicamente, l'inizializzazione della pagina HTML inizia quando il primo carattere della pagina HTML viene elaborato. E tecnicamente, runtime pagina HTML inizia quando l'evento window.onload è chiamato. L'evento window.onload viene chiamato dopo che la pagina HTML è stato elaborato, comprese le cornici e le immagini, ed è il primo pezzo di codice JavaScript che durante l'esecuzione può aspettare che la pagina HTML per essere completa. Un esempio di implementazione della manifestazione window.onload potrebbe essere come segue:

 Attuazione di una strategia di gestione degli errori 

In questo esempio, window.onload è vicino alla parte superiore della pagina HTML, ma la funzione potrebbe essere messo in qualsiasi punto della pagina. Per l'attuazione del window.onload, il metodo window.onerror viene assegnato come un gestore di errore globale catchall. Dal punto di vista di scripting, è l'ultimo punto in cui è possibile configurare il browser prima che il browser inizia la sua esecuzione runtime della pagina HTML. Il gestore window.onerror riceve tre parametri: msg, file, e la posizione. Questi tre parametri rappresentano il messaggio, il file, e la posizione nel file, rispettivamente.

Nell'ambito dell'attuazione del gestore window.onerror, il gestore potrebbe riparazione e riprovare, generare un registro, o fare qualsiasi altra cosa si desidera. L'attuazione window.onerror esempio, non restituisce un valore vero o falso, causando l'errore è propagato al browser. Un valore false si propagano e visualizzare l'errore, mentre un valore vero non rendere il browser a conoscenza dell'errore. L'applicazione di esempio contiene un problema, ma non è con il gestore di errori. Il problema è con l'assegnazione della funzione window.onload. Il codice è scritto, c'è solo una funzione di implementazione per window.onload, e si inizializza la funzione window.onerror. Per un'applicazione Ajax di qualsiasi complessità, non è possibile assegnare un unico metodo window.onload, in quanto ciò essere hogging il metodo. Solution Questa soluzione prevede la creazione di un delegato JavaScript, come dimostra il seguente codice sorgente.

 Fonte: / website / ROOT / ajaxrecipes / javascript / functionsareobjects.html  Attuazione di una strategia di gestione degli errori 
 

Per l'attuazione modificato onload, la funzione ops.delegate viene utilizzato per creare un delegato. Per il momento, pensare a un delegato come un modo per avere un unico risultato chiamata al metodo dei metodi più essere chiamato. (Potete trovare ulteriori informazioni sui delegati nel Caso 2-17.) L'attuazione di ops.delegate metterà alla prova se una funzione è già assegnato a window.onload. Se viene assegnata una funzione, allora la funzione esistente viene convertito in un metodo delegato, e la nuova funzione è associata con il delegato.

Poi, quando il browser chiede window.onload, essa si avvarrà sia la funzione originaria e la nuova funzione. In teoria, un numero infinito di funzioni può essere associato a un delegato. La cosa importante da ricordare è che le funzioni multiple possono essere associati a una singola proprietà, che è necessaria per il metodo window.onload. Le prove di codice riportato di seguito l'errore routine di gestione:

testsToRun var = (throw_exception: function () (throw new Error ( "questo è un errore");));

Quando la funzione throw_exception si chiama, viene generata un'eccezione da un'istanza dell'oggetto di errore e poi gettarlo utilizzando la parola chiave throw. In teoria, si può lanciare qualsiasi oggetto, anche quello che assomiglia a un errore. Naturalmente, l'utilizzo di errore in questo modo è la scelta più efficiente, e questo, in sostanza, è la base del quadro di gestione degli errori. Avete bisogno di qualcosa di catturare un errore, ed hai bisogno di lanciare un messaggio di errore. Come processo di acquisizione e l'errore è al contesto specifico, in modo che vi mostra qualcosa che io o un altro programmatore ha implementato in un'altra applicazione, non è essere di aiuto qui. Un altro modo per catturare un errore, se non un gestore di eccezioni, come segue:

Generate function () (throw new Error ();) CatchAll function () (try (Generate ();) catch (e) (/ / Fai qualcosa con l'errore throw e;))

In questo esempio sono due funzioni: generare e CatchAll. Genera viene usato per generare un'eccezione, e CatchAll è usata per catturare l'eccezione. In JavaScript, è possibile catturare un'eccezione utilizzando le parole chiave try e catch, che cattura tutti gli errori e le eccezioni che si verificano mentre il codice nel blocco try è in esecuzione. Quando viene generata un'eccezione, il codice all'interno del blocco catch è eseguito. In questo esempio, l'errore è generato da generare e catturato dal blocco catch, che genera l'errore. Quando viene generato l'errore di nuovo, ad eccezione sarà catturata nel metodo window.onload. Try and catch blocco è estremamente utile, perché tutti gli errori e le eccezioni possono essere prese senza il browser che sia il più saggio. Ma che hanno un meccanismo di catch-all può fare il debug JavaScript più complicata, perché gli errori che si verificano sono trattati senza lo sviluppatore essere più saggi di. Potreste essere tentati di utilizzare un blocco try e catch come una tecnica di programmazione generale, ma che sarebbe un cattivo idea.

Un errore che viene generata un'eccezione, e un'eccezione è qualcosa che non doveva succedere ed è imprevedibile. Un'eccezione non dovrebbe mai accadere, considerando che un errore può succedere. Il modo migliore per illustrare la differenza tra uno e l'errore e di eccezione è il seguente esempio, che mostra come una deroga può essere utilizzato per catturare un errore.

Nota Questo esempio potrebbe essere scritta più sinteticamente con altre parole chiave, ma il punto qui è semplicemente di mostrare la differenza tra l'utilizzo di una decisione di prova per una variabile non definita e con una deroga che viene eseguito se la variabile sembra essere indefinito.

func var; try (func ();) catch (e) (func = default; func ();)

L'esempio eccezione illustra come un gestore di eccezioni (try e catch parole chiave) può essere utilizzato per catturare un'eccezione se la variabile di funzione non è assegnato a un metodo. Func Calling genererà un'eccezione e attivare il codice nel blocco catch. Nel blocco catch dell'eccezione, la funzione variabile è assegnata una funzione predefinita che funziona ed è chiamato. Utilizzo di un blocco di eccezioni in questo modo non è corretto, perché il codice, come è scritto si aspetta che funzioni potrebbero non essere assegnati. Se vi è l'aspettativa di funzioni non essere assegnato, quindi il codice dovrebbe essere scritto a riflettere sul fatto che. Un modo migliore per scrivere il codice stesso è la seguente:

func var; if (typeof (func)! = "function") (func = default;) func ();

L'esempio riscritto il codice, la prova di funzionamento dei controlli per assicurarsi che la funzione fa riferimento a una funzione. Se funzioni non fa riferimento a una funzione, allora func viene assegnata la funzione predefinita di default. Poi, quando func viene chiamata, non fa eccezione sarà generata. Quando si scrive codice, gli errori e le eccezioni saranno generati, e avrete bisogno di una strategia per affrontare con loro. Mantenere i seguenti punti in mente quando si sta sviluppando un errore di strategia e di eccezione:

• Caricamento ed elaborazione di una pagina HTML prevede due fasi: inizializzazione della pagina HTML e di esecuzione della pagina HTML.

• Durante l'inizializzazione della pagina HTML, non attivare il vostro errore e la strategia eccezione farlo potrebbe avere risultati imprevedibili.

• Inizializzare l'errore e la strategia di gestione delle eccezioni nel metodo window.onload.

• Non supporre che avete a che fare con un unico pezzo di codice che deve essere chiamato con il metodo window.onload. Utilizzare un delegato per consentire le funzioni di più di essere chiamato.

• gli errori e le eccezioni non sono la stessa cosa. Errori possono essere previsti e trattati, ma le eccezioni non possono.

• È possibile definire un gestore globale eccezione per l'implementazione del metodo window.error.

• Per gestire le eccezioni locali, è possibile utilizzare un blocco try e catch.

un articolo presentato da Sonja Lande


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Questo articolo è "un errore di esecuzione e di gestione delle eccezioni strategia" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 179 users browsing the articles directory   


  

|