《C#语言程序设计》课程教学课件(PPT讲稿)第2章 C#语言基础-4/4

C#程序设计 第2章C#语言基础
C# 程序设计 第2章 C#语言基础

学习目的与要求: 了解什么是异常,以及C的异常处理机制 咒了解C#常用的异常类 掌握try、catch和finally关键字处理异常 掌握throw:关键字抛出异常 掌握自定义异常 2
2 了解什么是异常,以及C#的异常处理机制 了解C#常用的异常类 掌握try、catch和finally关键字处理异常 掌握throw关键字抛出异常 掌握自定义异常 学习目的与要求:

什么是异常 异常处理的方法 抛出异常 自定义异常
3 什么是异常 异常处理的方法 抛出异常 自定义异常 ★

为什么要异常处理 C:\Windows\system32\cmd.exe int a,b; 情输入被除数:a 未经处理的异常:System.FormatException:输入字符串的格式不正确。 Console.Write("请输入被除数:")i a int.Parse(Console.ReadLine ()) Console.Write("请输入除数:")i b int.Parse(Console.ReadLine ()) int c; c=a/bi Console.WriteLine("O}/1=2}",a,b,c); 4
4 为什么要异常处理 int a, b; Console.Write("请输入被除数:"); a = int.Parse(Console.ReadLine ()); Console.Write("请输入除数:"); b = int.Parse(Console.ReadLine ()); int c; c = a / b; Console.WriteLine("{0}/{1}={2}",a,b,c);

处理C#中的异常 异常:程序 在C#中,当出现某种异常时,就会创建一个异常对象 常见的异常 ·文件找不 Object ▣文件操作, Exception ■网络无法 SystemException ApplicationException 数组越界 从此处派生出 自己的异常类 ■算术除0 ArgumentException ArithmeticException lOException Argument NullException FileLoadException ArgumentoutofRangeException FileNotFoundException UnauthorizedAccessException StackoverflowException EndofStreamException OverflowException
5 处理C#中的异常 ▪ 异常:程序在执行过程中发生的错误。 ▪ 常见的异常 ◼ 文件找不到 ◼ 文件操作权限不足 ◼ 网络无法连接 ◼ 数组越界 ◼ 算术除0 在C#中,当出现某种异常时,就会创建一个异常对象

ArgumentException 参数错误:方法的参数无效 ArgumentNullException 数为空:给方法传递一个不可接受的空参 数 ArithmeticException 数学计算错误:由于数学运算导致的异常, 覆盖面广 DivideByZeroException 被0除 FormatException 参数的格式不正确 IndexOutOfRangeException 索引超出范围,小于0或比最后一个元素索引 大 NullReferenceException 引用为null的对象 StackOverflowException 堆栈已满 OverflowException 溢出 OutOfMemoryException 无法为新语句分配内存时引发异常,内存不 足 InvalidCastException 非法强制转换,显示转换失败时引发 EndOfStreamException 读到文件末尾而引发的。 6
6 ArgumentException 参数错误:方法的参数无效 ArgumentNullException 参数为空:给方法传递一个不可接受的空参 数 ArithmeticException 数学计算错误:由于数学运算导致的异常, 覆盖面广 DivideByZeroException 被0除 FormatException 参数的格式不正确 IndexOutOfRangeException 索引超出范围,小于0或比最后一个元素索引 大 NullReferenceException 引用为null的对象 StackOverflowException 堆栈已满 OverflowException 溢出 OutOfMemoryException 无法为新语句分配内存时引发异常,内存不 足 InvalidCastException 非法强制转换,显示转换失败时引发 EndOfStreamException 读到文件末尾而引发的

什么是异常 异常处理的方法 抛出异常 自定义异常
7 什么是异常 异常处理的方法 抛出异常 自定义异常 ★

异学M迅 形式四:多catchi配finally 异常处理:在运行时 try 山《曰出L▣” 待监测代码,此段代码若出现异常, 形式三:单catch配finally 则程序流程转到catch分支 形式五:无catch tionTyp1 e) try 码 待监测代码,此段代码若出现异常, I/则程序流程转到外层catch分支 tionTyp2e) 码 finally 川善后处理代码,无论是否出异常都会执 行,即使catch块有return也是如此 码,无论是否出异常都会执 ch块有return也是如此 8
8 异常处理 ▪ 异常处理:在运行时跟踪这些异常,并编写代码控制结果 被称为“异常处理”。 ▪ 异常处理的形式 形式一:单catch分支 try { //待监测代码,此段代码若出现异常, //则程序流程转到catch分支 } catch(Exception e) { //异常处理代码 } 形式二:多catch分支 try { //待监测代码,此段代码若出现异常, //则程序流程转到catch分支 } catch(ExceptionType1 e) { //异常处理代码 } catch(ExceptionType2 e) { //异常处理代码 } 形式三:单catch配finally try { //待监测代码,此段代码若出现异常, //则程序流程转到catch分支 } catch(Exception e) { //异常处理代码 } finally { //善后处理代码,无论是否出异常都会执 行,即使catch块有return也是如此 } 形式四:多catch配finally try { //待监测代码,此段代码若出现异常, //则程序流程转到catch分支 } catch(ExceptionTyp1 e) { //异常处理代码 } catch(ExceptionTyp2 e) { //异常处理代码 } finally { //善后处理代码,无论是否出异常都会执 行,即使catch块有return也是如此 } 形式五:无catch try { //待监测代码,此段代码若出现异常, //则程序流程转到外层catch分支 } finally { //善后处理代码,无论是否出异常都会执 行,即使catch块有return也是如此 }

异常处理 ty块包含的代码组成了程序的正常操作部分,但可能遇到 某些严重的错误情况。 catch:块包含的代码处理各种错误情况,这些错误是ty块中 的代码执行时遇到的。 finally块包含的代码清理资源或执行要在try块或catch块末尾 执行的其他操作。控制总是传递给finally块,与try块的退 出方式无关。 try只有1个;finally只有1个或0个 catch可以有0个(必须有一个finally),可以有多个 引出e.message-与e.tostring0 9
9 异常处理 try块包含的代码组成了程序的正常操作部分,但可能遇到 某些严重的错误情况。 catch块包含的代码处理各种错误情况,这些错误是try块中 的代码执行时遇到的。 finally块包含的代码清理资源或执行要在try块或catch块末尾 执行的其他操作。控制总是传递给finally 块,与 try 块的退 出方式无关。 引出e.message与e.tostring() try只有1个;finally 只有1个或0个 catch 可以有0个(必须有一个finally),可以有多个

异常处理 在catch多分支中需要注意各异常类型的顺序: 先具体化异常,再一般性异常。 catch:块中有application.exit0或enviroment.exit(O)语句时, finally块不会执行 catch块后没有参数时可以处理所有异常,包括exception及 其它语言发生的异常。 引出e.message-与e.tostring0 10
10 异常处理 在catch多分支中需要注意各异常类型的顺序: 先具体化异常,再一般性异常。 catch块中有application.exit()或enviroment.exit(0)语句时, finally块不会执行 catch块后没有参数时可以处理所有异常,包括exception及 其它语言发生的异常。 引出e.message与e.tostring()
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C#语言程序设计》课程教学课件(PPT讲稿)第2章 C#语言基础-3/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第2章 C#语言基础-2/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第2章 C#语言基础-1/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第1章 Microsoft.NET简介和C#概述.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第13章 Windows应用程序的部署.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第12章 GDI + 图形编程-2/2.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第12章 GDI + 图形编程-1/2.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第10章 ADO.NET数据库-3/3.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第10章 ADO.NET数据库-2/3.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第10章 ADO.NET数据库-1/3.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第9章 表单.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第8章 面向对象程序设计.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第7章 面向过程的程序设计.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第6章 数据库和数据表的命令.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第5章 查询与视图.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第4章 数据库和数据表的可视化操作.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第3章 项目管理器.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第2章 数据表达式和函数.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第1章 Visual FoxPro概述.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第12章 Visual FoxPro应用系统开发.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-1/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-2/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-3/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-4/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-5/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-6/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-7/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-8/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-9/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第4章 数组与集合-1/2.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第4章 数组与集合-2/2.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第5章 泛型-1/2.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第5章 泛型-2/2.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第6章 WinForm用户界面-1/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第6章 WinForm用户界面-2/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第6章 WinForm用户界面-3/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第6章 WinForm用户界面-4/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第7章 窗体的高级应用-1/3.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第7章 窗体的高级应用-2/3.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第7章 窗体的高级应用-3/3.ppt