我正在C#中創建擴展方法以從datagridview中檢索某個值。 這裏如果用戶給出的列名不存在,那麼我想讓這個函數拋出一個異常,這個異常可以在這個函數被調用的地方處理。 我怎樣才能做到這一點。如何爲自定義控件或擴展方法創建自定義異常處理程序
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:你明白我的意思。但我在這裏有點困惑。假設我爲此創建了一個程序集,然後將其包含到其他項目中。我不使用任何異常處理程序,然後發生異常的地方?我的意思是在我的dll或用戶代碼中。我感覺好像我的dll會掛在那一點上。而使用dll的用戶會陷入困境,他的所有應用程序將會異常關閉。是這樣嗎 ? – 2010-04-24 07:07:35
@Shantanu:只要你讓你的自定義異常類爲public,你的其他項目將能夠捕獲你拋出的自定義異常。如果沒有,另一個項目會崩潰(除非它捕獲所有'Exception's,但這樣做被認爲是不好的做法)。 – 2010-04-24 07:16:34