c#保存异常日志

1、日志文件

日志文件本质就是普通文件,所以保存日志文件就是对文件进行写操作。

具体文件操作方法可以参考链接:http://www.cnblogs.com/chenhailing/p/7446983.html

2、异常处理

异常相关流程:

1)异常产生

通常把有可能发生异常的代码放到try中

2)捕获异常

当发生异常时会在catch中捕获,不同的异常捕获的参数类型不同。

3)异常处理

异常处理通常有两种,一种是直接向上抛出去,一种是在catch中写代码处理,比如保存日志信息等。

4)释放资源

无论是否发生异常,程序最后都应该释放其所占用的资源,即使是有垃圾回收机制。这部分代码应该放在finally中。

3、简单异常示例

示例:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Text;
 4 using System.IO;
 5 
 6 /// <summary>
 7 /// [功能描述: 采用读文本文件,捕获异常]<br></br>
 8 /// [创 建 者: XXX]<br></br>
 9 /// [创建时间: 2017-08-29]<br></br>
10 /// <修改记录 
11 ///        修改人='' 
12 ///        修改时间='yyyy-mm-dd' 
13 ///        修改目的=''
14 ///        修改描述=''
15 ///  />
16 /// </summary>
17 namespace ConsoleApplication1
18 {
19     class ErrorLog
20     {
21         public ErrorLog()
22         {
23             Console.Write("请输入错误文件路径:");
24             string path = Console.ReadLine();
25             BornError(path);
26         }
27 
28         /// <summary>
29         /// 说明:保存错误日志
30         /// </summary>
31         /// <param name="path">文件路径</param>
32         /// <returns></returns>
33         /// <remarks>2017-08-29</remarks>
34         private void BornError(string path)
35         {
36             StreamReader sr = null;
37             FileStream fs = new FileStream("F:\\CHL\\chl05.txt", FileMode.Create);
38             StreamWriter sw = new StreamWriter(fs);
39             String line = null;
40 
41             try
42             {
43                 sr = new StreamReader(path, Encoding.Default);
44                 while ((line = sr.ReadLine()) != null)
45                 {
46                     sw.Write(line.ToString());
47                 }
48             }
49             catch (Exception e)
50             {
51                 sw.Write(e + "路径出错");
52                 Console.Write(e + "路径出错");
53             }
54             finally
55             {
56                 //清空缓冲区
57                 sw.Flush();
58 
59                 //关闭流
60                 sw.Close();
61                 if (sr != null)
62                 {
63                     sr.Close();
64                 }
65                 fs.Close();
66             }
67         }
68     }
69 }

结果:

 

posted @ 2017-08-29 18:08  海玲海玲  阅读(379)  评论(0编辑  收藏  举报