您的位置:首页 > 移动开发

[转]AppDomain的两个小技巧(程序运行完毕和未处理异常的处理)

2009-07-20 14:57 411 查看
有时候,我们会需要在程序结束时进行一些处理,比如记录log日志,清除一些临时文件等工作。这时候我们可以利用AppDomain的ProcessExit事件:

class Program

{

static void Main(string[] args)

{

AppDomain.CurrentDomain.ProcessExit += (sender, arg) =>

File.WriteAllText(@"c:\log.txt", ((AppDomain)sender).FriendlyName);

}

}

当程序运行完毕时,将会在C盘创建一个log.txt的文件,并写入我们指定的信息。一般参数中的sender为事件所属类的实例。

值得注意的是,当程序发生异常中断时,上述退出事件是不会执行的,这时候我们可以借助AppDomain的UnhandledException事件:

class Program

{

static void Main(string[] args)

{

AppDomain.CurrentDomain.UnhandledException += (sender, arg) =>

File.WriteAllText(@"c:\log.txt", ((Exception)arg.ExceptionObject).StackTrace);

throw new Exception("err!!");

}

}

配合着这两个事件的使用,我们可以对程序建立起完善的监督机制,再也不用担心异常发生后找不着,也不用担心日志信息记录因为出错而缺失。

转自:http://hi.baidu.com/expertsearch/blog/item/25bcd81197487806203f2e6b.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐