练习1:
记录异常信息
通过本练习,将会在一个没有异常处理的应用程序中使用异常处理应用程序块添加本地和全局的异常处理,并记录到Windows事件日志中。
第一步
打开Puzzler.sln 项目,默认的安装路径应该为C:/Program Files/Microsoft Enterprise Library January 2006/labs/cs/Exception Handling/exercises/ex01,并编译。
第二步 回顾应用程序
选择Debug | Start Debugging菜单命令运行应用程序,当前应用程序并没有出现异常信息。当尝试增加一个带有数字的单词(在文本框中输入“abc123”并单击Add Word按钮)到目录中时,将会出现一个未处理的异常,调试将会中断。
选择Debug | Stop Debugging菜单命令退出应用程序并返回Visual Studio。
第三步 增加Try/Catch异常处理
1
.选择PuzzlerUI项目,并选择Project | Add Reference …菜单命令,选择Browse项并添加如下程序集。
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll
默认的安装位置为C:/Program Files/Microsoft Enterprise Library January 2006/bin。
2
.在解决方案管理器中选择Puzzler.cs文件,并选择View | Code菜单命令,添加如下命名空间。
3
.在btnAddWord_Click方法中添加如下代码,在调用AddWord 和SetError时添加try/catch区。
using
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling;
private
void
btnAddWord_Click(
object
sender, System.EventArgs e)
{
try
{
// TODO: Handle exceptions
PuzzlerService.Dictionary.AddWord(txtWordToCheck.Text);
errorProvider1.SetError(txtWordToCheck, "");
}
catch (Exception ex)
{
bool rethrow = ExceptionPolicy.HandleException(ex, "UI Policy");
if (rethrow)
throw
{
try
{
// TODO: Handle exceptions
PuzzlerService.Dictionary.AddWord(txtWordToCheck.Text);
errorProvider1.SetError(txtWordToCheck, "");
}
catch (Exception ex)
{
bool rethrow = ExceptionPolicy.HandleException(ex, "UI Policy");
if (rethrow)
throw