Head First C# 中文版 第10章 异常处理 page477

本文介绍如何通过try/catch/finally块改进借口管理器的异常处理,包括处理非借口文件、修复导致ArgumentOutOfRange异常的问题以及确保加载无效文件时程序不崩溃。

 

 

使用你学到的try/catch/finally 的知识来改进 Brian 的借口管理器中的异常处理。


Open 按钮的事件处理方法添加异常处理。只写一个弹出消息框的 try/catch 就可以了。下面是你试图打开一个不是借口文件的文件时弹出的消息框的样子:


 

还没完事儿。运行程序,选择一个文件夹,在Description Last Results 栏中写入数据,但是不要输入 Last Used date 。现在选择一个文件夹并试着去保存借口。得下面这个 ArgumentOutOfRange 异常了吧?


 

使用调试器追踪这个异常。这个异常完全可以避免-- 你可以修复这个问题并确保这个异常永不再发生吗?

(提示:这和添加try/catch 块无关。你需要搞明白为什么“ Last Used date ”会导致问题。仔细观察异常信息来寻找线索。)


最后。程序在抛出ArgumentOutOfRange 异常之前保存了一个文件。加载这个文件 -- 你又会得到这个异常。如果试图去打开一个无效的借口文件的话你会得到另一个异常。在前面添加的异常中添加一个嵌套的异常处理来确保在试图加载无效文件(这时常发生)的时候不会崩溃:


1. try/catch 块之前添加一个叫做 clearForm 的布尔型变量。如果出现异常就把它设置为 true ,稍后再检查它来判断是否需要清空窗体。


2. Open 按钮中刚刚添加的异常处理中再添加一个 try/catch 块。


3. 给外层try/catch 块添加一个 finally 来把窗体重设为它的原始的空白状态。如果 clearForm true 的话,把 LastUsed.Value 重设为 DateTime.Now (这会返回当前时间)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值