批改HTML文件的简单程序之经验总结

自己先前写了一个关于批改HTML文件的简单程序,觉得有必要记录下一些经验和教训:

一、C#中try……catch……finally


try
{
可能抛出异常的语句
}
catch(异常类型)
{
抛出异常时的处理方法,可以分类处理
//if
//else if
//else
}
finally
{
不管抛出异常与否,都会执行的语句
可以将出现异常的结果放在这里判断处理
}
例如:
            HtmlNodeCollection titleNodes = null;
            HtmlNodeCollection styleNodes = null;
            try
            {
                titleNodes = htmlDoc.DocumentNode.SelectNodes(@"/html/body/*");//获得body的第一个子元素

                //获取css样式表设置值
                styleNodes = htmlDoc.DocumentNode.SelectNodes(@"/html/head/style");//获得style,css样式设置标签
            }
            catch(NullReferenceException ex)//出现的情况只可能是css样式表没有
            {
                if (styleNodes == null)
                {
                    WordInsert(para, "Html文件中没有CSS样式文件!" + ex.ToString());
                }
                if (titleNodes == null)
                {
                    WordInsert(para, "Html文件中没有文本文件!" + ex.ToString());
                }
            }
            finally
            {
                Regex titleName = new Regex("h[1-6]");//得到标题是h1,h2……
                if (titleNodes == null)
                {
                    WordInsert(para, "插入标题文本不成功");
                    ExcelInsert(excel, "0", row++, column);

                    WordInsert(para, "居中对齐设置不正确!");
                    ExcelInsert(excel, "0", row++, column);

                    WordInsert(para, "字体黑色设置不正确!");
                    ExcelInsert(excel, "0", row++, column);

                    WordInsert(para, "字体大小设置不正确!");
                    ExcelInsert(excel, "0", row++, column);

                    WordInsert(para, "字体颜色设置不正确!");
                    ExcelInsert(excel, "0", row++, column); 
                }
                else
                {
                      ……//没有出现异常的执行语句
                 }
             }


还需要注意的是,在try中可能出现NullReferenceException异常的变量,要在try之前声明,否则在后面的catch和finally语句中就不能调用这个变量!


二、从字符串中提取汉字


Regex nameRe = new Regex("[\u4E00-\u9FFF]+");//\u4E00-\u9FFF是包括繁体的汉字,\u4E00-\u9FA5是简体汉字

三、判断一个字符串中是否包含一个子字符串


IndexOf(string)>= 0,表示包含!最好不要用IndexOf(string)!= 0,因为如果子字符串刚好在首部,而判断为不包含!

四、事务逻辑


根本就没有这个选项、有这个选项但是值却是错误的、有这个选项并且值也是正确的!(老是忘记没有这个选项这个逻辑)



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值