22 C#中的异常处理入门 try catch throw
软件运行过程中,如果出现了软件正常运行不应该出现的情况,软件就出现了异常。这时候我们需要去处理这些异常。或者让程序终止,避免出现更严重的错误。或者提示用户进行某些更改让程序可以继续运行下去。
C#编程语言本身就为我们提供了这种异常处理机制。
C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。或者试图将一个字符串"aaa"转换成整数。
异常提供了一种把程序控制权从某个部分转移到另一个部分的方式。C# 异常处理时建立在四个关键词之上的:try、catch、finally 和 throw。
- 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
22 C#中的异常处理入门 try catch throw的更多相关文章
- T-SQL编程中的异常处理-异常捕获(catch)与抛出异常(throw)
本文出处: http://www.cnblogs.com/wy123/p/6743515.html T-SQL编程与应用程序一样,都有异常处理机制,比如异常的捕获与异常的抛出,本文简单介绍异常捕获与异 ...
- C++异常处理:try,catch,throw,finally的用法
写在前面 所谓异常处理,即让一个程序运行时遇到自己无法处理的错误时抛出一个异常,希望调用者可以发现处理问题. 异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制. 也许我们已经使 ...
- 异常处理(try catch throw)详解(C++)
选择异常处理的编程方法的具体原因如下: 1.把错误处理和真正的工作分开来: 2.代码更易组织,更清晰,复杂的工作任务更容易实现: 3.毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了: 4 ...
- C++ 异常处理(try catch throw)、命名空间
一.c++工具 模板(函数模板.类模板).异常处理.命名空间等功能是c++编译器的功能,语言本身不自带,这些功能已经成为ANSI C++标准了,建议所有的编译器都带这些功能,早期的c++是没有这些功能 ...
- 【Unity|C#】基础篇(15)——异常处理(try/catch/throw)
[学习资料] <C#图解教程>(第22章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...
- C++异常处理(try catch throw)完全攻略
程序运行时常会碰到一些异常情况,例如: 做除法的时候除数为 0: 用户输入年龄时输入了一个负数: 用 new 运算符动态分配空间时,空间不够导致无法分配: 访问数组元素时,下标越界:打开文件读取时,文 ...
- T-SQL编程中的异常处理-异常捕获(try catch)与抛出异常(throw)
本文出处: http://www.cnblogs.com/wy123/p/6743515.html T-SQL编程与应用程序一样,都有异常处理机制,比如异常的捕获与异常的抛出(try catch th ...
- C++异常处理: try,catch,throw,finally的用法
写在前面 所谓异常处理,即让一个程序运行时遇到自己无法处理的错误时抛出一个异常,希望调用者可以发现处理问题. 异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制. 也许我们已经使 ...
- 编写高质量代码改善C#程序的157个建议——建议86:Parallel中的异常处理
建议86:Parallel中的异常处理 建议85阐述了如何处理Task中的异常.由于Task的Start方法是异步启动的,所以我们需要额外的技术来完成异常处理.Parallel相对来说就要简单很多,因 ...
随机推荐
- POJ 3468_A Simple Problem with Integers(线段树)
题意: 给定序列及操作,求区间和. 分析: 线段树,每个节点维护两个数据: 该区间每个元素所加的值 该区间元素和 可以分为"路过"该区间和"完全覆盖"该区间考虑 ...
- Remove Duplicates from Sorted Array(参考)
Given a sorted array, remove the duplicates in place such that each element appear only once and ret ...
- JDBC的流数据
以下内容引用自http://wiki.jikexueyuan.com/project/jdbc/streaming-data.html: PreparedStatement对象必须具备使用输入和输出流 ...
- JDBC的异常
以下内容引用自http://wiki.jikexueyuan.com/project/jdbc/exceptions.html: 异常处理可以允许处理一个异常情况,例如可控方式的程序定义错误. 当异常 ...
- 基于xml配置springmvc
controller关键代码 public class MenuController extends MultiActionController 方法: public ModelAndView lis ...
- CentOS 7 开启VNC Service
由於是透過 GUI 管理, 所以需要圖形桌面環境, 如果沒有安裝, 可以用以下指令安裝 GNOME: # yum groupinstall “GNOME Desktop” Centos 7安裝 VNC ...
- [Debug] Inspect and Style an Element in DevTools that Normally Disappears when Inactive
It’s handy to inspect an element in your browser’s DevTools when you need to experiment or tweak it’ ...
- AE After Effect 如何替换和修改素材
替换素材:如图所示,相框外的人是成双成对的,相框里面的却只有一个人,我们想要把这个素材替换成两个人的.我们鼠标放到视频预览框的任何一个元素上面底部都会提示这是什么素材.比如我放到一个人的上面,则该人物 ...
- 【MySQL】Win7下修改MySQL5.5默认编码格式
一般安装MySQL程序过程中,有一步骤是选择MySQL的默认编码格式的,程序默认为Latin1编码格式,当然也可以选择第三个选项,手动选择gbk或utf8编码格式,以支持中文数据.如下图: 现在问题出 ...
- FineUI之使用SQL脚本从数据库表中生成对应的输入控件
在WEB开发时.常常须要根据数据库表中的字段建立对应的输入控件,来获取输入的数据.每次都须要按字段来敲,显然太低效.并且easy出错.这里提供一个SQL脚本生成对应输入控件的方法. USE DBDem ...