你的位置:首页 > ASP.net教程

[ASP.net教程]22 C#中的异常处理入门 try catch throw


软件运行过程中,如果出现了软件正常运行不应该出现的情况,软件就出现了异常。这时候我们需要去处理这些异常。或者让程序终止,避免出现更严重的错误。或者提示用户进行某些更改让程序可以继续运行下去。

C#编程语言本身就为我们提供了这种异常处理机制。

C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。或者试图将一个字符串"aaa"转换成整数。

异常提供了一种把程序控制权从某个部分转移到另一个部分的方式。C# 异常处理时建立在四个关键词之上的:trycatchfinallythrow

  • try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块。
  • catch:程序通过异常处理程序捕获异常。catch 关键字表示异常的捕获。
  • finally:finally 块用于执行给定的语句,不管异常是否被抛出都会执行。例如,如果您打开一个文件,不管是否出现异常文件都要被关闭。
  • throw:当问题出现时,程序抛出一个异常。使用 throw 关键字来完成。

 

语法

假设一个块将出现异常,一个方法使用 try 和 catch 关键字捕获异常。try/catch 块内的代码为受保护的代码,使用 try/catch 语法如下所示:

 

try      {        // 引起异常的语句      }      catch (ExceptionName e1)      {        // 错误处理代码      }      catch (ExceptionName e2)      {        // 错误处理代码      }      catch (ExceptionName eN)      {        // 错误处理代码      }      finally      {        // 要执行的语句      }

 

C#提供了很多种异常,我们在这里只要掌握最基本的异常Exception就可以啦。在catch语句中我们只处理Exception这个最基本的异常。

 

下面我们看一个具体的例子,来更加清楚的理解一下C#的异常处理。

 

你创建一个项目。解决方案名称为Sloution22,项目名称为Exercise22,项目类型为控制台程序。点击Program.cs. 在里边加入这些代码。

我在这里简要的说明一下这段代码。

1. 27行-45行 我们新建了一个ExceptionTest 方法。在这个方法中要求用户输入一个整数。如果用户输入一个字符串,我们的程序会产生异常。

2. 39行 我们用throw抛出了一个我们自己定义的异常。在里边加入了我们想传递的一些信息。

3. 41行-44行 finally语句是可选的。只有当需要做一些例如资源释放的操作的时候,才是需要的。不管有没有异常产生 finally部分都会执行。

4. 13行-23行 调用ExceptionTest方法。同时捕获异常。

5. 16行 如果调用ExceptionTest方法出现异常,这条语句不会执行。否则正常执行。

6. 21行 输出异常的简要信息

7. 22行 输出异常的详细信息。例如出错的代码位置。

 

运行结果

1. 用户输入字符串,产生异常

 

2. 用户输入整数,程序正常执行

 

 

练习

  1. 读懂代码,在关键的地方加上注释

  2. 查看详细的错误信息,定位是哪一行代码出现了问题。

  3. 去掉第39行 throw new Exception("转换出现异常");再次查看详细的错误信息,看看哪一行代码出现了问题。想想是什么原因。如果不明白,记得咨询我哦。

  4. finally语句一定会执行吗?去掉main方法的try catch 语句,调试一下程序。

 

 


付费解答C#入门学习过程中碰到的各种问题。

零基础学习C#入门,大多数的问题都可以通过自学或借助互联网解决。

但是还是会有一些问题,不是那么容易解决,成为了你学习的绊脚石。最后甚至造成你学习的半途而废。通常学习C#编程入门,你会遇到20到30多个你不能很容易解决的问题。

这个时候,你最需要什么呢?

对!一个专业的老师给你帮助!

你在学习本课程中,遇到任何问题都可以通过qq或email想本教程作者进行求助。

只需30元,你就可以得到本教程作者的三次专业解答。所以你只需不到300元就可以顺利的完成C#入门,从此推开软件行业的大门。

 

付费方式非常简单:

用微信扫描下面的二维码。在付款留言中留下你的qq号或email地址就可以啦。

 

教育不是要便宜,而是要可靠!真正聪明的人,更懂得花钱让专业的人为自己服务,提高自己的效率。

 

老师qq:2040227296

老师email:2040227296@qq.com