嵌套的try/catch块和创建异常对象

简介: 可以嵌套使用try..catch块,如下: 1 /* 2 Example13_5.cs illustrates a nested try/catch block; 3 the nested if throws an exception that is propagated to t...

可以嵌套使用try..catch块,如下:

 
 
1 /*
2 Example13_5.cs illustrates a nested try/catch block;
3 the nested if throws an exception that is propagated to the
4 outer exception
5   */
6
7   using System;
8
9 class Example13_5
10 {
11
12 public static void Main()
13 {
14
15 try
16 {
17
18 // a nested try and catch block
19 try
20 {
21
22 int [] myArray = new int [ 2 ];
23 Console.WriteLine( " Attempting to access an invalid array element " );
24 myArray[ 2 ] = 1 ; // throws the exception
25
26 }
27 catch (DivideByZeroException e)
28 {
29
30 // code that handles a DivideByZeroException
31 Console.WriteLine( " Handling a DivideByZeroException " );
32 Console.WriteLine( " Message = " + e.Message);
33 Console.WriteLine( " StackTrace = " + e.StackTrace);
34
35 }
36
37 }
38 catch (IndexOutOfRangeException e)
39 {
40
41 // code that handles an IndexOutOfRangeException
42 Console.WriteLine( " Handling an IndexOutOfRangeException " );
43 Console.WriteLine( " Message = " + e.Message);
44 Console.WriteLine( " StackTrace = " + e.StackTrace);
45
46 }
47
48 }
49
50 }

可以显示创建一个异常对象,如Exception myException = new Exception("myException");

然后对myException进行处理,代码如下:

 
 
1 /*
2 Example13_8.cs illustrates creating and
3 throwing an exception object
4 */
5
6 using System;
7
8 class Example13_8
9 {
10
11 public static void Main()
12 {
13
14 try
15 {
16
17 // create a new Exception object, passing a string
18 // for the Message property to the constructor
19 Exception myException = new Exception( " myException " );
20
21 // set the HelpLink and Source properties
22 myException.HelpLink = " See the Readme.txt file " ;
23 myException.Source = " My Example13_8 Program " ;
24
25 // throw the Exception object
26 throw myException;
27
28 }
29 catch (Exception e)
30 {
31
32 // display the exception object's properties
33 Console.WriteLine( " HelpLink = " + e.HelpLink);
34 Console.WriteLine( " Message = " + e.Message);
35 Console.WriteLine( " Source = " + e.Source);
36 Console.WriteLine( " StackTrace = " + e.StackTrace);
37 Console.WriteLine( " TargetSite = " + e.TargetSite);
38
39 }
40
41 }
42
43 }
相关文章
|
2月前
|
前端开发 JavaScript
使用 try-catch 语句来捕获 Promise 中的异常
【10月更文挑战第26天】使用try-catch语句捕获Promise中的异常是一种非常实用的技术,能够使异步代码的错误处理更加清晰、可控,提高程序的可靠性和稳定性。在实际开发中,合理地运用try-catch语句以及其他相关的错误处理机制,可以有效地应对各种可能出现的异常情况,为用户提供更好的体验。
|
3月前
|
Java
ry-catch 块的捕获范围
【10月更文挑战第15天】try-catch 块的捕获范围具有一定的局限性和特点,需要在实际编程中根据具体情况灵活运用。了解其捕获范围有助于更准确地处理异常,提高程序的稳定性和可靠性。
117 46
|
2月前
|
Java
如何使用 try-catch 块来捕获静态变量初始化中的异常
在Java中,可以通过在静态初始化块或静态变量初始化时使用try-catch语句来捕获可能出现的异常,确保程序的健壯性。具体做法是在静态初始化代码中加入try-catch结构,对可能抛出的异常进行处理。
99 16
|
7月前
|
数据库 UED 开发者
try-catch的作用及使用场景
`try-catch`是错误处理的关键结构,用于执行可能出错的代码并捕获异常,防止程序崩溃。它用于异常处理、资源管理、错误恢复、日志记录和控制业务逻辑。例如,在数据库操作、文件操作、网络请求及用户输入处理中常见其身影,确保程序稳定性和用户体验。
496 0
|
Oracle Java 关系型数据库
try-catch必须放在循环体外吗
try-catch必须放在循环体外吗
|
程序员 C++
C++的异常类型与多级catch匹配
try-catch 的用法: try{ // 可能抛出异常的语句 }catch(exceptionType variable){ // 处理异常的语句 } 我们还遗留下一个问题,就是 catch 关键字后边的exceptionType variable,这节就来详细分析一下。exceptionType是异常类型,它指明了当前的 catch 可以处理什么类型的异常;variable是一个变量,用来接收异常信息。 当程序抛出异常时,会创建一份数据,这份数据包含了错误信息,程序员可以根据这些信息来判断到底出了什么问题,接下来怎么处理。异常既然是一份数据,那么就应该有数据类型。
Catch块异常多类抓取
Catch块异常多类抓取
68 0
|
编译器
throw后报错,找不到报错处。throw、throws 、try/catch 作用区别,自定义Exception异常,printStackTrace()方法的
throw后报错,找不到报错处。throw、throws 、try/catch 作用区别,自定义Exception异常,printStackTrace()方法的
179 2
|
缓存 前端开发 Java
如何优雅的实现 try catch 异常块?
如何优雅的实现 try catch 异常块?
309 0
如何优雅的实现 try catch 异常块?
|
缓存 Java
如何优雅的实现异常块
在项目中,我们会遇到异常处理,对于运行时异常,需要我们自己判断处理。对于受检异常,需要我们主动处理。 但是繁琐的try{}caht嵌套在代码里,看着很不舒服,这里我们不讨论性能,就代码来讲,来看看如何将他隐藏起来。原理是不变的。变得是写法。下面我们来看如何优雅的处理异常块。
169 0
如何优雅的实现异常块