Pourquoi ne puis-je pas écrire un essai avec un pas de capture ou enfin?

Parfois je le fais et j'ai vu d'autres le faire aussi:

VB:

Try
    DontWannaCatchIt()
Catch
End Try

C#:

try 
{ 
    DontWannaCatchIt();
} 
catch {}

Je sais que je dois attraper tous les une exception importante que j'attends et de faire quelque chose, mais parfois, il n'est pas important - ou suis-je en train de faire quelque chose de mal?

Est cette utilisation de la try bloc incorrect, et l'exigence d'au moins un catch ou finally bloquer une indication de celui-ci?

Mise à jour:

Je comprends maintenant la raison pour cela, et c'est que je devrais au moins un commentaire sur le vide d'un bloc catch, donc les autres à comprendre pourquoi elle est vide. Je dois aussi attraper les exceptions que je suis attendu.

Heureusement pour moi, je code en VB donc je peux l'écrire en un seul hic:

Catch ex As Exception When TypeOf ex Is IOException _
                    OrElse TypeOf ex Is ArgumentException _
                    OrElse TypeOf ex Is NotSupportedException _
                    OrElse TypeOf ex Is SecurityException _
                    OrElse TypeOf ex Is UnauthorizedAccessException
    'I don't actually care.
End Try
  • Non, je l'ai déjà dit, je sais que je dois attraper tous les une exception importante, je vais le faire plus audacieux car il n'est pas assez lisible pour vous.
  • Pouvez-vous donner un exemple où vous considérez une exception "pas suffisamment important pour être pris"? Probablement, il est de votre faute.
  • La capture de tous les une exception importante est une mauvais idée. Vous seul hic de ce que vous pouvez gérer, sinon votre demande doit mourir horriblement et de laisser savoir à quelqu'un qu'il est mort afin que le programmeur peut le fixer.
  • édité parce que c'est toujours pas ce que j'ai signifié, ma faute.
  • Maintenant que vous avez modifié, où est la question? La capture des erreurs importantes que vous pouvez rencontrer comme IO problèmes que vous voulez avaler signifie que vous devez les spécifier, et c# a parfaitement bien la syntaxe de cette.
  • Je ne veux pas faire n'importe quoi avec une exception dans ce cas, j'utilise donc un vide bloc catch. La question est de savoir pourquoi un vide bloc catch au lieu de seulement un bloc try sans crochet? Mais maintenant, je commence à penser que je devrais au moins mettre des commentaires sur elle.