【笔记】《C#大学教程》- 第11章 异常处理
来源:互联网 发布:淘宝发布宝贝不同价格 编辑:程序博客网 时间:2024/06/07 10:31
1.异常流程:
(1).通过try块执行一个任务;
(2).通过catch异常类型来处理异常, 如果异常不进行处理那么方法中之后的程序将不会执行;
(3).如果有finally块那么无论异常有没有catch都会在异常处理后或者方法终止前执行finally块中的内容;
(4).如果异常被处理那么就会执行try块后的语句。
2.抛出异常:
throw new Exception("xxxxx");
3.Exception类:
(1).Message属性:错误消息。
(2).StackTrace:导致异常发生的方法调用堆栈。
(3).InnerException:表示自定义异常时原来使用的是哪种异常。
namespace ConsoleApplication4{ class Program { static void Main(string[] args) { try { Method1(); } catch (Exception exception) { Console.WriteLine( "exception.toString():\n{0}\n", exception.ToString()); Console.WriteLine( "exception.Message:\n{0}\n", exception.Message); Console.WriteLine( "exception.StackTrace:\n{0}\n", exception.StackTrace); Console.WriteLine( "exception.InnerException:\n{0}", exception.InnerException); } } public static void Method1() { Method2(); } public static void Method2() { Method3(); } public static void Method3() { try { Convert.ToInt32("Not an integer"); } catch (FormatException error) { throw new Exception( "Exception occurred in Method3", error); } } }}
exception.toString():System.Exception: Exception occurred in Method3 ---> System.FormatException: 输入字符串的格式不正确。 在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) 在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 在 System.Convert.ToInt32(String value) 在 ConsoleApplication4.Program.Method3() 位置 G:\CProjects\ConsoleApplication4\ConsoleApplication4\Program.cs:行号 51 --- 内部异常堆栈跟踪的结尾 --- 在 ConsoleApplication4.Program.Method3() 位置 G:\CProjects\ConsoleApplication4\ConsoleApplication4\Program.cs:行号 56 在 ConsoleApplication4.Program.Method2() 位置 G:\CProjects\ConsoleApplication4\ConsoleApplication4\Program.cs:行号 44 在 ConsoleApplication4.Program.Method1() 位置 G:\CProjects\ConsoleApplication4\ConsoleApplication4\Program.cs:行号 39 在 ConsoleApplication4.Program.Main(String[] args) 位置 G:\CProjects\ConsoleApplication4\ConsoleApplication4\Program.cs:行号 14exception.Message:Exception occurred in Method3exception.StackTrace: 在 ConsoleApplication4.Program.Method3() 位置 G:\CProjects\ConsoleApplication4\ConsoleApplication4\Program.cs:行号 56 在 ConsoleApplication4.Program.Method2() 位置 G:\CProjects\ConsoleApplication4\ConsoleApplication4\Program.cs:行号 44 在 ConsoleApplication4.Program.Method1() 位置 G:\CProjects\ConsoleApplication4\ConsoleApplication4\Program.cs:行号 39 在 ConsoleApplication4.Program.Main(String[] args) 位置 G:\CProjects\ConsoleApplication4\ConsoleApplication4\Program.cs:行号 14exception.InnerException:System.FormatException: 输入字符串的格式不正确。 在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) 在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 在 System.Convert.ToInt32(String value) 在 ConsoleApplication4.Program.Method3() 位置 G:\CProjects\ConsoleApplication4\ConsoleApplication4\Program.cs:行号 51请按任意键继续. . .
4.自定义异常类:
class ExpandException:ApplicationException{ public ExpandException():base ("any explanation") { } public ExpandException(string message):base(message) { } public ExpandException(string message, Exception inner):base(message, inner) { }}
5.使用checked和unchecked表明是否检查数据溢出或者不检查直接截短:
try{ sum = checked(num1 + num2);}
0 0
- 【笔记】《C#大学教程》- 第11章 异常处理
- 【笔记】《C#大学教程》- 第3章 C#编程介绍
- 【笔记】《C#大学教程》- 第4章 控制结构
- 【笔记】《C#大学教程》- 第6章 方法
- 【笔记】《C#大学教程》- 第7章 数组
- 【笔记】《C#大学教程》- 第12章 GUI(一)
- 【笔记】《C#大学教程》- 第12章 GUI(二)
- 【笔记】《C#大学教程》- 第14章 多线程
- 【笔记】《C#大学教程》- 第5章 控制结构(二)
- 【笔记】《C#大学教程》- 第8章 基于对象的编程
- 【笔记】《C#大学教程》- 第9章 面向对象编程:继承
- 【笔记】《C#大学教程》- 第10章 面向对象编程:多态性
- 【笔记】《C#大学教程》- 第12章 GUI(二)Part2
- 笔记11 《C++ 大学教程》
- Head First C# 中文版 第10章 异常处理 page439
- Head First C# 中文版 第10章 异常处理 page440
- Head First C# 中文版 第10章 异常处理 page441
- Head First C# 中文版 第10章 异常处理 page442
- 数组内元素按字母顺序排序,字典的key按字母顺序排列
- swift简单学习之逻辑运算符
- Ubuntu 14.04 LTS 使用sudo免输密码
- WebAPI 用户认证防篡改实现HMAC(一)MD5签名获取
- iOS开发 CocoaPods 的安装流程
- 【笔记】《C#大学教程》- 第11章 异常处理
- 209. Minimum Size Subarray Sum LeetCode
- 不带温度补偿的DIMU校准
- Java高级开发工程师考纲
- 排序算法-快速排序
- 内存泄漏——1.基础知识篇
- strtus2基本学习记录
- 浅析iOS中实例方法和类方法
- 阿里实习内推算法工程师处女面