电脑维修第一互动门户_www.PC106.com 为了方便您再次访问电脑维修站,请点击收藏本站!设为首页
操作系统 · 硬件学院 · 软件学院 · 网络学院 · DIY 经验 · 数据恢复 · 网站技术 · 维修网点 · IT 黄 页 · 大师答疑
故障症状 · 电脑优化 · 病毒快报 · 黑客安全 · 维修宝典 · 电脑保养 · 服 务 器 · 在线杀毒 · 在线电视 · 网址服务
维修 CPU·主板·硬盘·内存·显卡·显示器·键盘鼠标·声卡音箱·软驱光驱·打印机·机箱电源·BIOS·网卡·局域网·浏览器
您现在的位置: 电脑维修 >> 网站技术 >> .NET技术 >> .NET基础 >> 网站技术正文
除错(Debug)--错误的种类
作者:佚名 文章来源:不详 点击数: 更新时间:2007-2-3 15:07:04


    我们在开发程序的时候难免会发生错误,这些错误有时是程序设计师在编写程序代码时不小心打错,有时是客户端使用者因操作不当而引发的;即使再小心的程序设计师也不可能完全避免程序出错。因此如何避免错误、找出错误便成了程序设计中不可缺少的一环。程序的错误大致可分为三种,分别为语法错误、执行时期错误,以及逻辑错误。

语法错误(Syntax Error)
    程序在撰写的时候没有按照规定的语法就会出错。这种错误较为常发生在初学者,例如关键词拼错、有If 却忘了加Then、字符串没有用双引号围起来等,都会引发语法错误;但这一类错误会随着对程序语言的熟练度而渐渐减少。

执行时期错误(Runtime Error)
程序在执行时所发生错误即为执行时期错误。例如以0 作为除数导致程序无法继续执行,如下列程序代码片段所示:

X=1/0

    这个程序的语法并没有错误。但是0 不可为除数,因此执行到这一行时便会引发执行时期错误。要解决执行时期错误必须另外加入错误处理程序,有关错误处理的方法我们在后面章节再讨论。

逻辑错误(Logic Error)
    程序执行的结果不是我们所预期的,便称为逻辑错误。这可能是因为程序设计师的观念就本身就不正确,所以这种错误并不好发现。因为程序的语法内容并没有错,要解决这类的问题必须配合一些工具和方法,才能找出错误的地方。

程序代码来除错
    在程序代码中加入除错用的程序代码来除错是最直接的方法。以逻辑错误来说,因程序本身并没有任何语法错误存在,大多是变量的内容或程序执行流程上出了问题;因此将程序执行过程中的变量值显示出来可以帮助我们了解变量的变化,进而找出程序的问题出在哪里。下列范例以程序代码来显示变量的内容:

<Html>
<ASP:Label Id="Label1" Runat="Server" />
<Script Language="VB" Runat="Server">
Sub Page_Load(Sender As Object, e As EventArgs)
Dim I As Short
Dim J As Short
J=10
For I=0 To 10
I=I+1
Next
Response.Write("I: " & I.ToString & "<p>") '将变数I 的值印出
J=J+I
Label1.Text="执行结果为:" & J.ToString
End Sub
</Script>
</Html>


    上述例子程序在执行时一点问题也没有,我们预期最后的显示值是20,可是却出现22 这个不符合我们答案的数字;这时我们可以利用Response.Write 方法显执行完循环后的变量I 的内容。这个范例很单纯的植入检查变量值的叙述,在某些单纯的网页上使用有其便利性;不过程序代码一但复杂,所要检视的元素也会相对的成长,所以我们使用一些ASP.NET 提供的追踪程序方法较方便。

观察错误讯息
我们故意撰写一个错误的程序,然后以浏览器浏览:

<Html>
<Form Runat="Server">
<ASP:Button Id="Button1" Text="Click" OnClick="Button1_Click"
Runat="Server" /><P>
<ASP:Label Id="Label1" Runat="Server" /><P>
</Form>
<Script Language="VB" Runat="Server">
Sub Button1_Click(Sender As Object,e As Eventargs)
Label1.Text=2/0
End Sub
</Script>
</Html>



    由上图我们可以清楚的了解程序的错误类型以及错误的位置。上面这个程序在编译时期就出错误,原因是我们在运算时使用0 当除数,所以发生除0 错误。

Trace 功能
    在对程序进行除错工作的同时,都希望能够有系统的整理这些除错讯息。可是以往的网页程序设计并不提供这样的功能,必须使用一堆如Response.Write() 方法来显示所需要信息,既不清楚又没有效率。现在ASP.NET 提供了一个新的对象来方便我们除错,那就是Trace 对象。Trace对象是Page 对象的成员,因此不需另行宣告就可直接使用,它的正确类别名称为TraceContext。Trace 对象会列出整个网页的每一个请求等讯息,并且将这些信息整理好。要使用Trace 对象,首先要在网页的开头处加上如下的宣告:

<%@ Page Trace="True"%>

如下面这个程序

<%@Page Trace="True"%>
<Html>
<Form Runat="Server">
<ASP:TextBox Id="Text1" Runat="Server"/>×
<ASP:TextBox Id="Text2" Runat="Server"/>
<ASP:Button Id="Button1" Text="=" OnClick="Button1_Click"
Runat="Server"/>
<ASP:Label Id="Label1" Runat="Server"/><p>
</Form>
<Script Language="VB" Runat="Server">
Sub Button1_Click(Sender As Object, e As EventArgs)
Label1.Text=Cint(Text1.Text) * Cint(Text2.Text)
End Sub
</Script>
</Html>


我们会看到网页除了有我们所放的控件之外还多了一些信息,下表是Trace 对象后各个标题的说
明:

Trace 对象的常用属性如下表所示:

Trace 对象的常用方法如下表所示:

下列范例利用Trace 对象的Warn 方法送出追踪讯息:

<%@Page Trace="True"%>
<Html>
<Form Runat="Server">
<Asp:TextBox Id="Text1" Runat="Server"/>×
<Asp:TextBox Id="Text2" Runat="Server"/>
<Asp:Button Id="Button1" Text="=" OnClick="Button1_Click"
Runat="Server"/>
<Asp:Label Id="Label1" Runat="Server"/><p>
</Form>
<Script Language="VB" Runat="Server">
Sub Button1_Click(Sender As Object, e As EventArgs)
Trace.Warn("Trace 讯息","Click 事件开始")
Trace.Warn("Text1 内容",Text1.Text)
Trace.Warn("Text2 内容",Text2.Text)
Label1.Text=Cint(Text1.Text)*Cint(Text2.Text)
Trace.Warn("Trace 讯息","Click 事件结束")
End Sub
</Script>
</Html>



    上述范例我们在Button1 的Click 事件开始处加入Trace.Warn("Trace 讯息","Click 事件开始") ,然后在事件结束位置加上Trace.Warn("Trace 讯息","Click 事件结束") 。接着我们按下Button1 后,发现在Trace Information 的区块中多了我们刚刚所自订的讯息。当我们不再需要Trace 对象的讯息时,并不需要逐一的去删除;只要将<@Page Trace="True"> 从网页中移除,则Trace 对象的信息将不会出现。而程序中的Trace 叙述可以在以后使用,非常方便。



上网速度更快更爽、更安全下载使用Firefox火狐浏览器

网站技术录入:admin    责任编辑:admin 
  • 上一篇网站技术:

  • 下一篇网站技术:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

     IT图片报道

    14万元天价!640GB闪存硬盘美国问

    双核独显19寸液晶惠普PC机只卖49

    佳能MP160售价仅580元

    神舟双核液晶电脑3999起
     IT热点报道

    普通IT报道 中国电信称三年内实现光纤到户
    普通IT报道 广达个人电脑宣布已开始在江苏投入量产
    普通IT报道 14万元天价!640GB闪存硬盘美国问世
    普通IT报道 节后病毒猖獗系统瘫痪
    普通IT报道 AMD推出6款节能处理器
    推荐IT报道 双核独显19寸液晶惠普PC机只卖4999元
    普通IT报道 微软无奈下调Vista销售预期 XP仍是主角
    普通IT报道 佳能MP160售价仅580元
    推荐IT报道 神舟双核液晶电脑3999起
    推荐IT报道 4999元玩Vista 七喜12寸轻薄本升级
    关于公司 | 免责声明 | 广告服务 | 招贤纳士 | 联系我们 | 友情链接 1 2 3
    Copyright©2005 - 2007  http://www.PC106.com  All Right Reserved   
    桂ICP备06015569号