Je crée une méthode d'extension en C# pour extraire une valeur de datagridview. Ici, si un utilisateur donne un nom de colonne qui n'existe pas, alors je veux que cette fonction lance une exception qui peut être gérée à l'endroit où cette fonction sera appelée. Comment puis-je y parvenir.Comment créer un gestionnaire d'exceptions personnalisé pour des contrôles personnalisés ou des méthodes d'extension
public static T Value<T>(this DataGridView dgv, int RowNo, string ColName)
{
if (!dgv.Columns.Contains(ColName))
throw new ArgumentException("Column Name " + ColName + " doesnot exists in DataGridView.");
return (T)Convert.ChangeType(dgv.Rows[RowNo].Cells[ColName].Value, typeof(T));
}
@Zach: vous avez compris ce que je voulais dire. Mais je suis un peu confus ici. Supposons que je crée un assembly pour cela et l'inclue ensuite dans un autre projet. Je n'utilise pas de gestionnaire d'exception sur leur cas où l'exception se produira-t-elle? Je veux dire dans ma DLL ou mon code d'utilisateur. Je me sens comme si ma DLL va raccrocher sur ce point. Et l'utilisateur utilisant dll va les piéger et toute son application se fermera de façon anormale. Est-ce vrai? –
@Shantanu: Tant que vous créez vos classes d'exception personnalisées 'public', votre autre projet sera capable d'intercepter les exceptions personnalisées que vous lancez. Si ce n'est pas le cas, l'autre projet va planter (à moins qu'il n'attrape toutes les exceptions, mais cela est considéré comme une mauvaise pratique). –