try {
}
catch (Exception) {
}
puis-je simplement écrire
try {
}
catch {
}
Est-ce correct dans C # .NET 3.5. Le code est plus joli mais je ne sais pas si c'est pareil.
try {
}
catch (Exception) {
}
puis-je simplement écrire
try {
}
catch {
}
Est-ce correct dans C # .NET 3.5. Le code est plus joli mais je ne sais pas si c'est pareil.
Ils sont pas les mêmes.
catch (Exception) { } attraper des exceptions gérées uniquement; catch { } attraper des non-CLS des exceptions ainsi: http://msdn.microsoft.com/en-gb/bb264489.aspx
Une non prise en charge non compatibles CLS exception devient un problème de sécurité quand déjà permis les autorisations sont supprimés dans le bloc catch. Parce que non-CLS conforme exceptions ne sont pas pris, un méchant de la méthode qui jette une non-CLS conforme à l'exception de courir avec élévation de la les autorisations.
Edit: en fait .NET 2.0+ encapsule les valeurs, de sorte qu'ils sont les mêmes. C'est un peu un soulagement!
Oui, l'avantage du premier formulaire est que vous pouvez nommer la variable d'exception puis utiliser l'objet pour enregistrer les détails de l'exception dans un fichier, etc.
try {
}
catch (Exception ex) {
// Log exception message here...
}
En outre, il est généralement déconseillé d'attraper la classe générique Exception
si vous pouvez plutôt intercepter des exceptions spécifiques (telles qu'une exception IOException) à l'aide du premier formulaire.
Edit: Comme C# 2.0, non-conformes CLS des exceptions peuvent être pris dans les deux sens.
Donc, oui. Ils sont identiques. Un paramètre clause catch sans une déclaration de Type de captures de toutes les Exceptions.
Dans le CLR 2.0, MS introduit RuntimeWrappedException, ce qui est conforme CLS type d'exception, pour encapsuler non-conformes CLS exceptions. Le compilateur C# ne vous permettra pas de les jeter, mais il peut les attraper avec le catch (Exception) { } syntaxe.
C'est pourquoi le compilateur C# va émettre un avertissement CS1058 si vous utilisez les deux clauses dans le même temps sur CLR 2.0 ou version ultérieure.
Ainsi, ils sont en fait identiques.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.