C#--异常对象和多catch块

简介: 可以自定义异常块如,catch (System.Exception myException),然后对myException进行访问,例如: 1 /* 2 Example13_2.cs illustrates the use of a 3 System.

可以自定义异常块如,catch (System.Exception myException),然后对myException进行访问,例如:

 
 
1 /*
2 Example13_2.cs illustrates the use of a
3 System.Exception object
4   */
5
6   using System;
7
8   class Example13_2
9 {
10
11 public static void Main()
12 {
13
14 try
15 {
16
17 int zero = 0 ;
18 Console.WriteLine( " In try block: attempting division by zero " );
19 int myInt = 1 / zero; // throws the exception
20
21 }
22 catch (System.Exception myException)
23 {
24
25 // display the exception object's properties
26 Console.WriteLine( " HelpLink = " + myException.HelpLink);
27 Console.WriteLine( " Message = " + myException.Message);
28 Console.WriteLine( " Source = " + myException.Source);
29 Console.WriteLine( " StackTrace = " + myException.StackTrace);
30 Console.WriteLine( " TargetSite = " + myException.TargetSite);
31
32 }
33
34 }
35
36 }
 
 
1 /*
2 Example13_4.cs illustrates multiple catch blocks
3 */
4
5 using System;
6
7 class Example13_4
8 {
9
10 public static void Main()
11 {
12
13 try
14 {
15
16 int [] myArray = new int [ 2 ];
17 Console.WriteLine( " Attempting to access an invalid array element " );
18 myArray[ 2 ] = 1 ;
19
20 }
21 catch (DivideByZeroException e)
22 {
23
24 // code that handles a DivideByZeroException
25 Console.WriteLine( " Handling a System.DivideByZeroException object " );
26 Console.WriteLine( " Message = " + e.Message);
27 Console.WriteLine( " StackTrace = " + e.StackTrace);
28
29 }
30 catch (IndexOutOfRangeException e)
31 {
32
33 // code that handles an IndexOutOfRangeException
34 Console.WriteLine( " Handling a System.IndexOutOfRangeException object " );
35 Console.WriteLine( " Message = " + e.Message);
36 Console.WriteLine( " StackTrace = " + e.StackTrace);
37
38 }
39 catch (Exception e)
40 {
41
42 // code that handles a generic Exception: all other exceptions
43 Console.WriteLine( " Handling a System.Exception object " );
44 Console.WriteLine( " Message = " + e.Message);
45 Console.WriteLine( " StackTrace = " + e.StackTrace);
46
47 }
48
49 }
50
51 }

也可定义多个catch块,对多个异常情况进行处理,如:

相关文章
|
8月前
|
Java C#
C# 面向对象编程解析:优势、类和对象、类成员详解
OOP代表面向对象编程。 过程式编程涉及编写执行数据操作的过程或方法,而面向对象编程涉及创建包含数据和方法的对象。 面向对象编程相对于过程式编程具有几个优势: OOP执行速度更快,更容易执行 OOP为程序提供了清晰的结构 OOP有助于保持C#代码DRY("不要重复自己"),并使代码更易于维护、修改和调试 OOP使得能够创建完全可重用的应用程序,编写更少的代码并减少开发时间 提示:"不要重复自己"(DRY)原则是有关减少代码重复的原则。应该提取出应用程序中常见的代码,并将其放置在单一位置并重复使用,而不是重复编写。
81 0
|
21天前
|
程序员 C# 数据库
C# 比较对象新思路,利用反射技术打造更灵活的比较工具
中途接手的项目,碰到需要在更新对象信息时比较并记录差异的需求,最变态的还有附加要求,怎么办?有没有既能满足需求又能对项目影响最小的方法呢?分享这个我封装的方法,一个利用反射技术打造的更灵活的比较工具
|
3月前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
138 65
|
2月前
|
JSON 程序员 C#
使用 C# 比较两个对象是否相等的7个方法总结
比较对象是编程中的一项基本技能,在实际业务中经常碰到,比如在ERP系统中,企业的信息非常重要,每一次更新,都需要比较记录更新前后企业的信息,直接比较通常只能告诉我们它们是否指向同一个内存地址,那我们应该怎么办呢?分享 7 个方法给你!
|
4月前
|
C# 数据安全/隐私保护
C# 一分钟浅谈:类与对象的概念理解
【9月更文挑战第2天】本文从零开始详细介绍了C#中的类与对象概念。类作为一种自定义数据类型,定义了对象的属性和方法;对象则是类的实例,拥有独立的状态。通过具体代码示例,如定义 `Person` 类及其实例化过程,帮助读者更好地理解和应用这两个核心概念。此外,还总结了常见的问题及解决方法,为编写高质量的面向对象程序奠定基础。
41 2
|
5月前
|
安全 测试技术 数据库连接
如何避免 C# 中的异常
【8月更文挑战第27天】
65 2
|
5月前
|
安全 C# 开发者
【C# 多线程编程陷阱揭秘】:小心!那些让你的程序瞬间崩溃的多线程数据同步异常问题,看完这篇你就能轻松应对!
【8月更文挑战第18天】多线程编程对现代软件开发至关重要,特别是在追求高性能和响应性方面。然而,它也带来了数据同步异常等挑战。本文通过一个简单的计数器示例展示了当多个线程无序地访问共享资源时可能出现的问题,并介绍了如何使用 `lock` 语句来确保线程安全。此外,还提到了其他同步工具如 `Monitor` 和 `Semaphore`,帮助开发者实现更高效的数据同步策略,以达到既保证数据一致性又维持良好性能的目标。
71 0
|
7月前
|
开发框架 .NET 程序员
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
43 0
|
8月前
|
C#
C#的类和对象的概念学习案例刨析
【5月更文挑战第17天】C#是一种面向对象的语言,以类和对象为核心。类作为对象的模板,定义了属性(如Name, Age)和行为(如Greet)。对象是类的实例,可设置属性值。封装通过访问修饰符隐藏实现细节,如Customer类的私有name字段通过Name属性访问。继承允许新类(如Employee)从现有类(Person)继承并扩展。多态让不同对象(如Circle, Square)共享相同接口(Shape),实现抽象方法Area,提供灵活的代码设计。
79 1