J'ai besoin d'une regex Visual Studio pour faire correspondre les exceptions avalées.Expression rationnelle de studio visuel pour correspondre aux exceptions avalées
C'est aussi loin que je suis arrivé, mais il correspond toujours un code valide comme ceci:
catch (ArgumentNullException)
{
//...
throw;
}
catch:Wh*\(:Wh*.*Exception.*\):Wh*\{[:Wh*.*]*[^(throw:Wh*.*;)].*
Comment puis-je résoudre ce problème?
Modifier: Dois-je partir des commentaires qu'il n'est pas possible de tester l'absence d'un modèle dans une expression régulière dans Visual Studio? - C'est le sens de ma question. Je voudrais mettre de côté les questions de validité de l'approche (je suis pleinement conscient de FxCop et al, lexing et l'analyse, et ce seminal post.Je suis également conscient que les exceptions de déglutition est parfois OK).
J'ai déjà vu de très mauvaises instances d'utilisation d'expressions rationnelles pour des tâches complètement inappropriées, mais cela prend vraiment le dessus. –
Vous ne pouvez pas analyser C++ de manière fiable avec des expressions rationnelles. Je ne sais pas VS mais serais surpris s'il n'y avait pas un outil ou un plug-in pour vous aider. Bien sûr, les exceptions avalées sont mauvaises, sauf quand elles ne le sont pas. À un moment donné, vous devrez les réviser par code et le mieux que vous pouvez espérer est un outil qui vous donne des faux positifs à examiner et à documenter. – msw
@Anon, s'il vous plaît pouvez-vous expliquer pourquoi cela est inapproprié. Il peut y avoir des faux positifs. Il ne sera peut-être pas possible de trouver toutes les exceptions avalées, mais en tant qu'outil d'identification des domaines à examiner, cela pourrait certainement être utile? – Ben