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块,对多个异常情况进行处理,如:

相关文章
|
4月前
|
Java C#
C# 面向对象编程解析:优势、类和对象、类成员详解
OOP代表面向对象编程。 过程式编程涉及编写执行数据操作的过程或方法,而面向对象编程涉及创建包含数据和方法的对象。 面向对象编程相对于过程式编程具有几个优势: OOP执行速度更快,更容易执行 OOP为程序提供了清晰的结构 OOP有助于保持C#代码DRY("不要重复自己"),并使代码更易于维护、修改和调试 OOP使得能够创建完全可重用的应用程序,编写更少的代码并减少开发时间 提示:"不要重复自己"(DRY)原则是有关减少代码重复的原则。应该提取出应用程序中常见的代码,并将其放置在单一位置并重复使用,而不是重复编写。
52 0
|
1月前
|
C#
C#对象初始化器
C#对象初始化器
|
2月前
|
存储 C#
C#对象和类
C#对象和类
17 0
|
2月前
|
开发框架 安全 .NET
C# .NET面试系列三:集合、异常、泛型、LINQ、委托、EF!
<h2>集合、异常、泛型、LINQ、委托、EF! #### 1. IList 接口与 List 的区别是什么? IList 接口和 List 类是C#中集合的两个相关但不同的概念。下面是它们的主要区别: <b>IList 接口</b> IList 接口是C#中定义的一个泛型接口,位于 System.Collections 命名空间。它派生自 ICollection 接口,定义了一个可以通过索引访问的有序集合。 ```c# IList 接口包含一系列索引化的属性和方法,允许按索引访问、插入、移除元素等。 由于是接口,它只定义了成员的契约,而不提供具体的实现。类似于 IEnumera
170 2
|
4月前
|
存储 C#
C#基础语法(类和对象)
C#基础语法(类和对象)
21 2
|
4月前
|
安全 编译器 C#
C#中的可空引用类型:减少空引用异常的利器
【1月更文挑战第9天】C# 8.0中引入的可空引用类型特性,它通过在编译时提供更精确的静态分析,帮助开发者减少运行时的空引用异常。文章详细阐述了可空引用类型的工作原理、如何配置项目以使用此特性,以及在实际编码中如何利用可空引用类型提升代码的健壮性和可读性。
|
5月前
|
Java 编译器 C#
【从Java转C#】第三章:对象和类型
【从Java转C#】第三章:对象和类型
|
10月前
|
C#
C#——类和对象
C#——类和对象
54 0
|
5月前
|
XML 存储 JSON
C# | 使用Json序列化对象时忽略只读的属性
将对象序列化成为Json字符串是一个使用频率非常高的功能。Json格式具有很高的可读性,同时相较于XML更节省空间。 在开发过程中经常会遇到需要保存配置的场景,比如将配置信息保存在配置类型的实例中,再将这个对象序列化成为Json字符串并保存。当需要加载配置时,则是读取Json格式的字符串再将其还原成配置对象。在序列化的过程中,默认会将所有公开的属性和字段都序列化进入Json字符串中,这其中也会包含只读的属性或字段,而只读的属性和字段在反序列化的过程中其实是无意义的,也就是说这一部分存储是多余的。 本文将讲解如何在执行Json序列化时,忽略掉那些只读的属性和字段。
63 0
C# | 使用Json序列化对象时忽略只读的属性