【发布时间】:2011-05-06 18:15:33
【问题描述】:
我一直在使用 DevExpress Filter TreeList 代码,我很好奇它为什么会抛出 DevExpress.Utils.HideException。
我的理解是异常代价高昂,应该谨慎使用并且只在某些情况下使用,但下面的代码片段显示我们总是抛出 HideException 而没有任何特定事件或代码被触发。
来自FilterTreeList.cs
private void OnMouseDown(object sender, MouseEventArgs e)
{
if ( e.Button != MouseButtons.Left )
return;
TreeListHitInfo hitInfo = ((TreeList)sender).CalcHitInfo(e.Location);
if ( hitInfo.HitInfoType == HitInfoType.Column )
{
ColumnInfo colInfo = ((TreeList)sender).ViewInfo.ColumnsInfo[hitInfo.Column];
GridFilterButtonInfoArgs filterButtonInfo = GetFilterButtonInfoArgs(colInfo);
if ( filterButtonInfo != null && filterButtonInfo.Bounds.Contains(e.Location) )
{
filterButtonInfo.State = ObjectState.Pressed;
((TreeList)sender).InvalidateColumnHeader(hitInfo.Column);
throw new HideException();
}
}
他们为什么在这里抛出HideException,它有什么好处?
【问题讨论】:
标签: c# .net winforms exception-handling devexpress