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

来源:互联网 发布:网络vx是什么意思 编辑:程序博客网 时间:2024/05/16 07:32

自己先前写了一个关于批改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,因为如果子字符串刚好在首部,而判断为不包含!

四、事务逻辑


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



原创粉丝点击