文档详情

面向对象程序设计(C#)第09章 异常处理与跟踪调试.ppt

发布:2017-05-22约6.58千字共25页下载文档
文本预览下载声明
1、异常处理概述 异常是一种封装了反常程序事件信息的对象,C#用异常来处理错误和反常情况。 当异常抛出时,当前函数的执行会停止,堆栈展开,直到找到正确的异常处理代码,异常处理代码就是处理异常的代码块。 如果异常得到处理,程序会解决问题并继续执行。即使程序不能继续执行,捕获异常也能使程序输出错误信息并安全地终止程序。 int i = 0 ; string [] greetings = {Hello world !,How are you ?,Thank you !}; while ( i 4 ) { Console.WriteLine(greetings[i]); i++; } 2、常见的异常 在C#中提供有很多的异常类,所有的异常类都是System.Exception类型或是从其派生的类型。 下表列出了System命名空间中许多常见的异常类。 异常通过抛出(throw)来创建,通过捕获( catch )在别处检测。C#使用throw、try和catch这些关键字来执行这些任务。 异常处理机制允许程序直接去捕获异常,并进行处理,然后程序继续执行 在C#语言中,异常处理是使用try … catch … finally语句来完成的,它提供一种机制,用于捕捉在try语句块的执行期间发生的各种异常。 try子句 try try语句块 catch子句 catch ( 数据类型 标识符) catch语句块 finally子句 finally finally语句块 try块中包含可能会产生异常的语句。 catch从句捕捉并处理异常。 如果能确定在try语句块中可能发生的异常类型,那么catch语句可以捕捉相应的异常类型;如果事先并不知道try语句块中会引起哪一种异常,则在catch语句中可以忽略异常的类型。 3.1.1 通用处理 try { int i = 0 ; string [] greetings = {Hello world !,No,I mean it !,HELLO WORLD!}; while ( i 4 ) { Console.WriteLine(greetings[i]); i++; } } catch { Console.WriteLine(异常发生,catch子句捕获了这个异常,并进行了处理,程序继续运行。); } try { operator1 = Convert.ToInt32(textBox1.Text); operator2 = Convert.ToInt32(textBox2.Text); result = checked(operator1 / operator2); textBox3.Text = Convert.ToString(result); } catch (System.Exception e) { MessageBox.Show(输入错误,请检查!); } 使用Message属性和ToString方法: Message属性提供一个包括描述性错误消息 的短字符串。 ToString方法返回一个包含数行的字符串。 try { operator1 = Convert.ToInt32(textBox1.Text); operator2 = Convert.ToInt32(textBox2.Text); result = checked(operator1 / operator2); textBox3.Text = Convert.ToString(result); } catch (System.Exception ex) { MessageBox.Show(输入错误: + ex.Message, 错误提示, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } 通过一个try可使用多个捕获块。这样做的原则是必须将较为具体的catch放在前面,后跟较为一般的情况。 当异常发生时,C#搜索当前的
显示全部
相似文档