Mise à jour: Je vais le laisser tel quel: Le succès de la performance d'une exception (très rare) est meilleur que le succès probable de la performance pour le contrôle de chaque opération (commune)Comment puis-je tester avec élégance les situations de débordement en C#?
Je suis en train pour soutenir un « EstimatedRowCount » que dans un cas serait le produit de deux sous-curseurs qui sont reliés entre eux:
estimatedRowCount = left.EstimatedRowCount * right.EstimatedRowCount;
return estimatedRowCount;
Bien sûr, si gauche et à droite sont assez grands, cela jette un OverflowException.
Ici, je fais juste assez grand pour savoir si inquiète pas vraiment estimatedRowCount est précis à 100%, que ce curseur tient beaucoup de données.
En ce moment, je fais ceci:
// We multiply our rowcount
Int64 estimRowCount = 0;
try
{
estimRowCount = leftRowCount * rightRowCount;
}
catch (OverflowException)
{
// Ignore overflow exceptions
estimRowCount = Int64.MaxValue;
}
return estimRowCount;
Y at-il une meilleure façon de tester pour les opérations de débordement, donc je ne dois pas faire l'try {} catch pour garder?
Ceci est l'une de ces fonctionnalités de langage obscures que vous ne connaissez jamais jusqu'à ce que vous en ayez besoin. = P –