L'instruction C# using fournit un moyen pratique d'établir une portée dans laquelle un objet jetable est garanti d'être éliminé correctement, même si une exception se produit dans cette portée. Lorsque vous utilisez cette instruction avec ADO.NET et la classe SqlConnection, il est important de considérer la façon dont les erreurs seront traitées.
Exemple de code
L'extrait de code suivant illustre l'utilisation de l'instruction using avec un SqlConnection et SqlCommand :
private static void CreateCommand(string queryString, string connectionString) { using (SqlConnection connection = new SqlConnection( connectionString)) { SqlCommand command = new SqlCommand(queryString, connection); command.Connection.Open(); command.ExecuteNonQuery(); } }
Gestion des erreurs
L'instruction using fournit une syntaxe simplifiée pour implémenter le modèle try-finally. Si une exception se produit dans le bloc using, la méthode Dispose() de l'objet SqlConnection sera toujours appelée, garantissant un nettoyage correct des ressources.
Cependant, si une erreur se produit lors de l'ouverture de la connexion (par exemple, un chaîne de connexion invalide), le bloc using n'interceptera pas l'exception. En effet, la méthode Open() est appelée dans le bloc using et toutes les exceptions qui se produisent avant le début du bloc using ne seront pas gérées par l'instruction using.
Solution suggérée
Pour implémenter la gestion des erreurs dans le bloc using, vous pouvez utiliser le modèle try-catch. Par exemple, l'extrait de code suivant ajoute un bloc try au bloc using :
private static void CreateCommand(string queryString, string connectionString) { using (SqlConnection connection = new SqlConnection( connectionString)) { try { SqlCommand command = new SqlCommand(queryString, connection); command.Connection.Open(); command.ExecuteNonQuery(); } catch (InvalidOperationException) { // Log and/or rethrow or ignore } catch (SqlException) { // Log and/or rethrow or ignore } catch (ArgumentException) { // Log and/or rethrow or ignore } } }
En ajoutant le bloc try, vous pouvez gérer toutes les exceptions qui se produisent lors de l'exécution de la méthode Open() et du journal, relancez-les ou ignorez-les comme vous le souhaitez.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!