2010-07-09 17 views
3

Possible en double:
Why are Exceptions not Checked in .NET?Pourquoi VB.NET n'applique-t-il pas les exceptions de gestion?

Si je me souviens bien, Java applique la capture et le traitement des exceptions une méthode appelée peut lancer. Pourquoi .NET ne fait-il pas de même?

+2

Y a-t-il beaucoup d'autres langages que Java qui ont cette application? Je ne peux pas penser à trop. Je pense que Java peut être l'homme étrange sur ce sujet. Pas que ce soit mauvais ... –

+2

Dupliquer: http://stackoverflow.com/questions/124143/why-are-exceptions-not-checked-in-net –

Répondre

11

Cette fonctionnalité de Java est connue sous le nom d'exceptions vérifiées. Anders, créateur de C#, a fait une interview où il a expliqué en détail pourquoi ils ne sont pas inclus dans C# et par conséquent VB.Net

Je dis VB.Net par conséquent, parce que si ni C# ni le CLR inclus les exceptions vérifiées il n'y avait vraiment aucune raison pour que VB.Net les inclue non plus. VB était déjà en pleine transformation à partir d'un modèle qui n'incluait pas d'exceptions. Introduire un nouveau modèle d'exception qui était complètement différent du reste du CLR aurait inefficace, créé la confusion de l'utilisateur et entraînerait plus de problèmes de compatibilité croisée

3

Je suggère de lire The Trouble with Checked Exceptions où Anders Hejlsberg, l'architecte C# principal, parle avec Bruce Eckel et Bill Venners à propos des problèmes de versionnabilité et d'évolutivité avec des exceptions vérifiées.

2

Parfois, vous ne voulez pas gérer l'exception immédiatement dans la méthode dans laquelle elle se produit.

Parfois, il n'y a rien que vous puissiez faire. Par exemple, si vous extrayez des données d'une base de données et que vous rencontrez un problème lors de la récupération des données, le Data Access Layer n'est peut-être pas le meilleur endroit pour traiter le problème. Il serait peut-être préférable d'autoriser l'exception à passer à la couche logique métier ou à la couche présentation, où les informations appropriées peuvent être affichées à l'utilisateur.

Dans .Net, l'approche générale est de gérer uniquement l'exception si vous pouvez faire quelque chose à ce sujet. Et souvent, tout ce que vous pouvez faire est de fournir des informations utiles à l'utilisateur.