Delphi编程_调试和异常处理.ppt
文本预览下载声明
调试和异常处理 5.1 程序错误类型 语法错误 运行时的错误 逻辑错误 5.1.1 程序错误类型 编写的语句不符合语法规范 错误 if EditUser.Text := ‘Anyone’ 正确 if EditUser.Text = ‘Anyone’ 5.1.2 运行时的错误 打开不存在的文件 数据类型不兼容 除数为0 访问已无效的资源 堆栈溢出 5.1.3 逻辑错误 程序逻辑上不正确而引起的错误 可能通过编译,程序本身可以正常运行 程序运行的结果不正确 如:判断语句中的条件表达式 实时处理程序中的事件处理顺序 逻辑错误只能由程序员自己找出 用调试器监控变量有助于定位逻辑错误 一个好的编程习惯有助于减少逻辑错误的发生 5.2 Delphi的调试器 嵌入调试信息 编译指令 调试器选项 调试方法 5.2.1 嵌入调试信息 使用调试器前,先将调试代码嵌入到编译后的程序中 发布程序时去掉这些信息,重新编译 Project|Build|项目名 设置调试信息 Project|Options|Compiler|Debugging Debugging information:编译后程序单元文件变大 Local symbols:产生局部符号信息(在单元implementation部分声明符号) Reference info:是否产生标识符的引用信息,供编译器使用 Assertions:是否在程序的断言产生代码 5.2.2 编辑指令 编译开关 Option中的选项均可在程序中用编译开关实现 {$D+}或{$D-}确定是否产生调试信息 参数指令 指定影响编译过程的参数(如文件名或内存大小) 条件指令 用户定义的编译指令,控件某一部分代码的编译过程 {$IFDEF WIN32} //如果定义了编译条件Win32,则编译这段代码 {$ELSE} //否则编译这一段代码 {$ENDIF} 5.2.3 调试器选项 General选项卡 主要用于用户接口 EventLog选项卡 事件日志的相关选项 LanguageExceptions选项卡 出现异常时,调试器如何处理语言异常 OS Exceptons选项卡 列出所有能够产生的操作系统异常 Distributed Debugging选项卡 远程调试时的相关选项 5.2.4 调试方法 设置断点 运行到光标处 单步运行 监视表达式的值 设置断点 什么是断点? 编辑器中设置的让程序运行暂停的位置 设置断点的方法 在可执行的代码行上用鼠标该左边界 单击所在行,然后按F5 用菜单设置断点的位置 说明 断点必须在可执行的代码行上 注释、空行或声明行上的断点无效 在Project|Option|Compiler中选中Optimization时,某些语句被忽略,不能设置断点 设置断点(续) 查找断点 View|Debug Windows|Breakpoints打开BreakPoint对话框 显示了断点所在程序的文件名、行号和断点相关的条件设置 设置断点条件 在BreakList窗口,用鼠标右击该断点, 单击Porperties弹出对话框 运行到光标处 类似断点,在程序执行到光标处暂停 设置方法 在需暂停处设置插入符,按F4 Run|Run to Cursor 单步运行 单步运行方法 先设置断点 Run|Trace Into(或F9键) 此方法可进进函数或过程中的语句跟踪 Run|Step Over(或F8键) 程序调用函数或过程,不进入函数或过程内部跟踪 监视表达式的值 设置监视表达式 Run|Add Watch 编辑器的弹出菜单Debug|Add Watch Cursor 在编辑器中按Ctrl+F5 双击Watch List窗口 监视表达式的值(续) 监视局部变量的值 View|Debug windows|Local Variables 监视表达式的值(续) 计算和修改表达式的值 Run|Evaluate/Modify 5.3 异常处理 什么是异常? 运行时的错误 Delphi的异常处理机制 建立在“保护块” 保护块是用try和end封装的能够对异常做出特定响应的一段代码 Delphi异常处理 Try…except Try..finally 嵌套的异常响应 异常的传递 异常的重引发 哑异常 5.3.1 try…except 语句格式 Try {需要保护的程序段/可能产生异常的程序段} Except {异常处理} End; procedure TForm1.Button1Click(Sender: TObject); var n1, n2, n3:integer; begin try n1 := StrToInt(Edit1.text); n2 := StrT
显示全部