2010-07-28 4 views
0

Imaginez que vous ayez du code susceptible de générer une exception. Par exemple, vous essayez d'envoyer un message électronique à un serveur de messagerie ou d'écrire un fichier sur le disque pendant que vous n'êtes pas sûr si vous avez les autorisations appropriées pour le faire. Quel type de stratégie de gestion des exceptions utiliseriez-vous pour éviter que l'exception ne soit affichée dans le navigateur? De quel code auriez-vous besoin?Stratégie de gestion des exceptions

+2

est ce devoir? – Peter

Répondre

0

Toutes les langues qui peuvent lancer des exceptions ont une manière de les attraper.

Ils regardent souvent quelque chose comme ceci:

try 
{ 
    some_risky_thing(); 
} 
catch(Exception e) 
{ 
    handle_the_exception(); 
} 

En capturant l'exception que vous arrêtiez est la propagation de la pile d'appels (où il finira par trouver l'utilisateur).

Afin d'arrêter toutes les exceptions arrivant à l'utilisateur, placez-en une au niveau le plus élevé dont vous disposez. Ensuite, vous pouvez attraper toutes les exceptions parasites que vous avez manqué et faire quelque chose de plus approprié que de les jeter à l'utilisateur (comme les enregistrer discrètement quelque part).

0

Cela dépend. Pour ces cas, j'emballerais probablement le code qui peut lancer l'exception dans un bloc try/catch. Différentes langues appellent cette construction quelque chose de différent - parfois c'est essayer/attraper/finalement, d'autres c'est essayer/sauf.

Cependant, il est facile d'abuser des exceptions et de la gestion des exceptions. Certaines choses que vous devez éviter utilisent la gestion des exceptions pour le contrôle de flux, la gestion des exceptions trop tôt (continuez à les transmettre jusqu'à ce qu'elles puissent être gérées correctement) et le traitement des conditions non exceptionnelles comme exceptionnelles.