.NET学习(5) C#中异常处理
2009-01-19 10:56
357 查看
看了Modern C#系列课程5--C#中异常处理的笔记,主讲 俞晖
主要是跟踪(tracing),其实个人觉得,就是写一个写文件函数,把程序的每一步都写入文件,然后用DEBUG控制打开或关闭,效果一样。但是,这个跟踪好像要复杂一点。
首先,要增加一个配置文件。
在config中设定,打开/关闭tracing。
<configuration>
<appSettings>
<add key=”tracing” value=”true”/>
</appSettings>
</configuration>
可以通过在项目中添加配置文件,然后加上上面的语句。
然后,增加一个Globals.cs文件,读取配置文件中的配置信息。
using System;
using CFG = System.Configuration.ConfigurationSettings;//名字空间别名
namespace Tracing
{
public class Globals
{
public static readonly bool Trace;//全局变量,打开关闭跟踪的FLAG
static Globals() // constructor (called automatically upon first use of class)
{
try // to read trace setting
{
//通过读取配置文件中的KEY,取得相应的VALUE
Trace = System.Convert.ToBoolean( CFG.AppSettings["Tracing"] );
}
catch
{
Trace = false;
}
}
}//class
}//namespace
其次,在程序运行之前要做一些准备工作。在Form1.cs中:
static void Main()
{
//在当前目录生成AppLog.txt文件
string logfile = System.AppDomain.CurrentDomain.BaseDirectory + "AppLog.txt";
//打开一个IO流
System.IO.TextWriter log = new System.IO.StreamWriter(logfile);
//如果打开了跟踪
if (Globals.Trace) // then also send trace output to log file・
{
//生成一个跟踪的监听器
System.Diagnostics.TextWriterTraceListener logger;
//把跟踪的监听器绑定到IO流上
logger = new System.Diagnostics.TextWriterTraceListener(log);
//把监听器加入对象
System.Diagnostics.Trace.Listeners.Add(logger);
//跟踪对象写log,触发IO流写文件
System.Diagnostics.Trace.WriteLine("App starting: " + DateTime.Now);
}
//主程序运行
Application.Run(new Form1());
}
最后,在程序中需要写文件的地方加上跟踪对象的处理。
using System;
using T = System.Diagnostics.Trace; //名字空间别名
T.WriteLineIf(Globals.Trace, "DataAccess.Open():");
T.Indent(); //缩进
T.WriteLineIf(Globals.Trace, "Connection string=...");
T.Unindent();//取消缩进
T.Flush();//写完清空IO流
T.WriteLineIf(Globals.Trace, 参数);//参数可以是字符串或整形
主要是跟踪(tracing),其实个人觉得,就是写一个写文件函数,把程序的每一步都写入文件,然后用DEBUG控制打开或关闭,效果一样。但是,这个跟踪好像要复杂一点。
首先,要增加一个配置文件。
在config中设定,打开/关闭tracing。
<configuration>
<appSettings>
<add key=”tracing” value=”true”/>
</appSettings>
</configuration>
可以通过在项目中添加配置文件,然后加上上面的语句。
然后,增加一个Globals.cs文件,读取配置文件中的配置信息。
using System;
using CFG = System.Configuration.ConfigurationSettings;//名字空间别名
namespace Tracing
{
public class Globals
{
public static readonly bool Trace;//全局变量,打开关闭跟踪的FLAG
static Globals() // constructor (called automatically upon first use of class)
{
try // to read trace setting
{
//通过读取配置文件中的KEY,取得相应的VALUE
Trace = System.Convert.ToBoolean( CFG.AppSettings["Tracing"] );
}
catch
{
Trace = false;
}
}
}//class
}//namespace
其次,在程序运行之前要做一些准备工作。在Form1.cs中:
static void Main()
{
//在当前目录生成AppLog.txt文件
string logfile = System.AppDomain.CurrentDomain.BaseDirectory + "AppLog.txt";
//打开一个IO流
System.IO.TextWriter log = new System.IO.StreamWriter(logfile);
//如果打开了跟踪
if (Globals.Trace) // then also send trace output to log file・
{
//生成一个跟踪的监听器
System.Diagnostics.TextWriterTraceListener logger;
//把跟踪的监听器绑定到IO流上
logger = new System.Diagnostics.TextWriterTraceListener(log);
//把监听器加入对象
System.Diagnostics.Trace.Listeners.Add(logger);
//跟踪对象写log,触发IO流写文件
System.Diagnostics.Trace.WriteLine("App starting: " + DateTime.Now);
}
//主程序运行
Application.Run(new Form1());
}
最后,在程序中需要写文件的地方加上跟踪对象的处理。
using System;
using T = System.Diagnostics.Trace; //名字空间别名
T.WriteLineIf(Globals.Trace, "DataAccess.Open():");
T.Indent(); //缩进
T.WriteLineIf(Globals.Trace, "Connection string=...");
T.Unindent();//取消缩进
T.Flush();//写完清空IO流
T.WriteLineIf(Globals.Trace, 参数);//参数可以是字符串或整形
相关文章推荐
- C#学习 - vs调试(采用异常处理来实现两个整数的和)
- C#学习使用try-catch-finally错误处理表达式(续)--定义自己的异常消息类
- 从C#到Objective-C,循序渐进学习苹果开发(4)--代码块(block)和错误异常处理的理解
- C#学习笔记13——异常处理
- 学习笔记之C#类、循环中的语句、基础知识和异常处理
- 【C#学习】异常处理
- 第九 讲 : C# 的异常处理- 【天轰穿.Net4趣味编程系列视频教程-vs2010轻松学习C#】
- [ASP.NET学习笔记之二十六]C#的异常处理
- C#学习——CLR异常处理原理
- C#学习记录三:异常处理
- c#学习5,处理异常
- .NET异步操作学习之一:Async/Await中异常的处理
- .天轰穿C# -vs2010 - 03C#的异常处理之.NET中异常处理方式【原创】
- .NET/Dot Net学习笔记---.net理解,C#.net的基本类型,字符串转义字符处理..
- 天轰穿C# -vs2010 - 03C#的异常处理之多个catch块【原创】
- C# 阻塞方式Socket接受异常处理(不定期更新)
- .Net 下未捕获异常的处理
- C#中使用try catch对系统性能的影响和处理机制的学习总结!
- C# 之 读取Word时发生 “拒绝访问” 及 “消息筛选器显示应用程序正在使用中” 异常的处理
- .net中常出现的错误异常的处理