Attraper une exception spécifique

Comment puis-je attraper exception spécifique à l'aide de c# ?
Dans ma base de données est unique index sur des colonnes.
lorsque l'utilisateur insère enregistrement en double cette exception a été jeter :

Impossible d'insérer une ligne de clé en double dans
l'objet 'dbo.BillIdentity' unique
index IX
_BillIdentity'. L'
la déclaration a été résilié.

Comment puis-je attraper cette exception?
Je suis actuellement la vérification à l'aide de ce code :

 catch (Exception ex) {
    if (ex.Message.Contains("Cannot insert duplicate key row in object 'dbo._BillIdentity' with unique index 'IX__BillIdentity")) {
        string ScriptKey = "$(function() {ShowMessage('Error');});";
        ScriptManager.RegisterStartupScript(Page, GetType(), "script", ScriptKey, true);
    }
}

Je pense que sa mauvaise odeur code.
Est-il un meilleur moyen?

source d'informationauteur Shahin