下面是我所开发的一个UI里面的C#代码,主要就是几个按钮点击事件,按照我们公司的要求在事件里面必须加try-catch-finally做异常处理,不过我感觉每个事件里面都要加相同的try-catch-finally代码,感觉没有达到代码重用,但又不是很清楚改如何重用这部分代码,故特此咨询博客园的大牛们,望大牛不吝赐教!不胜感激!
代码
private void AddButton_Click()
{
try
{
this.Cursor=Cursors.Wait;
this._present.Add();//调用另一个Class里面的Add方法
}
catch(Exception e)
{
throw e;
}
finally
{
this.Cursor=Cursore
}
}
private void DeleteButton_Click()
{
try
{
this.Cursor=Cursors.Wait;
this._present.Delete();//调用另一个Class里面的Delete方法
}
catch(Exception e)
{
throw e;
}
finally
{
this.Cursor=Cursore
}
}
private void SaveButton_Click()
{
try
{
this.Cursor=Cursors.Wait;
this._present.Save();();//调用另一个Class里面的Save方法
}
catch(Exception e)
{
throw e;
}
finally
{
this.Cursor=Cursore
}
}
{
try
{
this.Cursor=Cursors.Wait;
this._present.Add();//调用另一个Class里面的Add方法
}
catch(Exception e)
{
throw e;
}
finally
{
this.Cursor=Cursore
}
}
private void DeleteButton_Click()
{
try
{
this.Cursor=Cursors.Wait;
this._present.Delete();//调用另一个Class里面的Delete方法
}
catch(Exception e)
{
throw e;
}
finally
{
this.Cursor=Cursore
}
}
private void SaveButton_Click()
{
try
{
this.Cursor=Cursors.Wait;
this._present.Save();();//调用另一个Class里面的Save方法
}
catch(Exception e)
{
throw e;
}
finally
{
this.Cursor=Cursore
}
}
首先谢谢大家的热心帮助!看来博客园不仅大牛多,热心肠的人更多!再次感谢大家!对于下面的一些评论我想先说明一下,首先在我们项目里面所有的事件都是要做异常处理的,而且所有的异常处理的代码都是一样的(最起码我的代码里面都是一样的),类似于下面这样子:
Private void Button_Click()
{
try
{
this.Cursor=Cursors.Wait;
//调用另一个Class里面的相应方法
}
catch(Exception e)
{
throw e;
}
finally
{
this.Cursor=Cursore
}
}
{
try
{
this.Cursor=Cursors.Wait;
//调用另一个Class里面的相应方法
}
catch(Exception e)
{
throw e;
}
finally
{
this.Cursor=Cursore
}
}
对于一些博友说不需要重构,我觉得还是必要的,因为每一个try-catch-finnaly块都大概要占用10行的代码,而且关键是每一个事件的异常处理代码都是一样的!
最后需要隆重推荐一下下面这篇文章了:
http://www.cnblogs.com/artech/archive/2010/03/26/1697298.html
这篇文章写的非常好,个人觉得很好的解决了我问的问题!推荐大家看一下!
还有就是博友在留言里面推荐的文章,感觉写的也很不错,我一并放在这儿,感兴趣的可以去看看:
1. http://www.cnblogs.com/blodfox777/archive/2010/01/14/AOP-With-PostSharp.html, 一篇关于AOP的PPT,其实我以前我没听说过这个,惭愧!