Maison >développement back-end >C++ >Comment puis-je détecter efficacement plusieurs exceptions dans un seul bloc de code ?
Détectez plusieurs exceptions dans un seul bloc de code
Dans les langages de programmation, la détection des exceptions est une partie importante de la gestion des erreurs. Cependant, lorsque plusieurs exceptions spécifiques doivent être interceptées, en particulier lors de l'exécution de plusieurs opérations sur un objet, cela peut devenir verbeux et répétitif.
Question :
Considérez le code suivant dans lequel vous essayez d'analyser un GUID à partir d'une chaîne de requête et de le définir sur un champ :
<code>try { WebId = new Guid(queryString["web"]); } catch (FormatException) { WebId = Guid.Empty; } catch (OverflowException) { WebId = Guid.Empty; }</code>
Dans cet exemple, si une FormatException ou OverflowException se produit lors de l'analyse du GUID, le WebId sera défini sur Guid.Empty. Cependant, si une autre exception inattendue est rencontrée, elle se propagera sans être traitée. Pour éviter le code passe-partout et gérer efficacement plusieurs exceptions, une meilleure solution est nécessaire.
Solution : intercepter System.Exception et changer en fonction du type
Pour intercepter plusieurs exceptions dans un seul bloc de code, vous pouvez utiliser la syntaxe catch (Exception ex). Cela interceptera toutes les exceptions héritées de la classe Exception de base, y compris les exceptions spécifiques telles que FormatException et OverflowException.
Après avoir détecté une exception, vous pouvez utiliser une instruction switch basée sur le type d'exception pour déterminer comment la gérer. Si l'exception est une exception connue (par exemple, FormatException ou OverflowException), vous pouvez effectuer des actions spécifiques (par exemple, définir WebId sur Guid.Empty). Sinon, vous pouvez relancer l'exception pour permettre au code de niveau supérieur de la gérer.
<code>catch (Exception ex) { if (ex is FormatException || ex is OverflowException) { WebId = Guid.Empty; } else throw; }</code>
Cette approche vous permet d'intercepter plusieurs exceptions spécifiques dans un bloc de code et de les gérer selon vos besoins, tout en permettant la propagation d'exceptions inattendues.
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!