最近在写代码时,很多的代码需要用Try...catch...来进行捕获异常进行处理。感觉特别麻烦,try...catch...的方法到处copy
后来发现有个人利用Attribute属性来进行处理异常,我没想明白他是怎么实现的。
例子:[MyErrorLog(...)]
public void TestMessage()
{
throw new Exception("DDDD");
}异常信息的捕获通过MyErrorLog来进行捕获。
请问这样的东西应该利用什么技术实现!
后来发现有个人利用Attribute属性来进行处理异常,我没想明白他是怎么实现的。
例子:[MyErrorLog(...)]
public void TestMessage()
{
throw new Exception("DDDD");
}异常信息的捕获通过MyErrorLog来进行捕获。
请问这样的东西应该利用什么技术实现!
解决方案 »
- 新人求助,谁能帮我看下这段代码哪儿错了
- 在一個文本文件中比較每倏記錄輸出相同的行
- 看看问题出自那儿?c/c++ to c#
- 如何在当前tables里做模糊查询,找到匹配的数据
- (小女子第一次用C#遇到难题,请教高人)怎样用c#调用智能ABC输入法???
- VS2005.net 与 VS2003.net区别在什么地方.
- .NET框架在哪下载呀???
- 各位大虾!怎么读数据库外建关系!和插入表的顺序!(c#)
- 怎样在几个项目之间来回调试,在一个Solution中?
- 有没有人玩过unsafe code,看看这个问题如何解决,知道的及其简单。
- 如何控制RICKTEXTBOX的滑动条
- 请教:wince+C#中如何调用一个这样的C++ DLL,非常感谢
lz的想法不错,可以通过AOP实现。
异常统一处理比较好,自定义个异常基类,分类继承,分类保存。
winform有个ThreadException 可以统一捕获未处理的异常,在此进行分类处理。
Application.ThreadException +=new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
BusinessException be = e.Exception as BusinessException;
if (be != null)
{
MessageBox.Show(e.Exception.Message.ToString());
}
}
如果是在程序的最外面添加TRY...CATCH...来控制异常,比较难发现程序的错误和程序异常发生的原始地方。我习惯在界面层这块进行异常的记录,记录当前运行函数的名称和异常的信息。
但有个问题是:就是需要不停的拷贝Try...Catch(){ LogErrorMessage("");}
比较繁琐。所以想偷点懒。嘿嘿嘿
public void TestMethod()
{
int i = 0;
int j = 1 / i;
}对.NET 程序进行编译完成后程序代码变成:
pulic void TestMethod()
{
try
{
int i = 0;
int j = 1 / i;
}
catch(Exception ex)
{
LogErrorMessage(ex);
}
}