黑马程序员----C#中的流程控制语句之异常处理语句
来源:互联网 发布:linux系统挂载光盘 编辑:程序博客网 时间:2024/06/06 10:56
---------------------- ASP.Net+Android+IO开发S 、 .Net培训、期待与您交流! ----------------------
(一),try-catch语句
C#语言提供了利用try-catch捕捉异常的方法,在try块中的任何语句产生异常,都会执行catch块中的语句来处理异常。
语法:
try
{
语句序列
}
catch(异常类型 标示符)
{
异常处理
}
执行过程:如果try中的代码没有出错,则程序就正常运行try中的代码,不会执行catch中的代码;如果try中的代码一旦出错,程序就立即跳入catch中去执行代码,那么try中出错代码之后的代码就没机会再执行了。
例如:
static void Main(string[] args) { Console.WriteLine("请输入一个整数:"); string str = Console.ReadLine(); try {//把有可能出错的代码写在try中 int number = Convert.ToInt32(str); Console.WriteLine("您刚刚输入的数字是{0}", number); } catch {//出错了就立即跳进来执行catch中的代码 Console.WriteLine("您刚刚输入的不是数字!"); } Console.ReadKey(); }
(二),try-catch-finally语句
如果try后有finally块,不论是否出现异常,也不论是否有catch块,finally块总是会执行的,即使在try内使用跳转语句或return语句也不能避免finally块的执行。
语法:
try
{
语句序列
}
catch(异常类型 标示符)
{
异常处理
}
finally
{
语句 序列
}
注意:finally块中做的是释放资源的操作,如关闭打开的文件等。
(三),throw语句
有时候在方法中出现了异常,不一定立即把它显示出来,而是想把这个异常抛出并让调用这个方法的程序进行捕捉和处理。所以这是我们就可以使用throw语句。
语法:
Throw[表达式];
注意:表达式的类型必须是System.Exception类或从System.Exception类继承的类的类型。Throw也可以不带表达式,但只能用在catch中。
例如:
static void Main(string[] args) { try { Method1(); } catch(Exception er) {//立即抓住Method1抛出的异常 Console.WriteLine("Main方法捕获到:"+er.Message); } Console.ReadKey(); } static void Method1() { try { Method2(); } catch(Exception er) {//立即抓住Method2抛出的异常 Console.WriteLine("Method1中捕获到"+er.Message); //重新抛出当前正在由catch块处理的异常er throw; } } static void Method2() { //Method2抛出新的异常 throw new Exception("Method2中抛出的异常"); }
---------------------- ASP.Net+Android+IO开发S 、 .Net培训、期待与您交流! ----------------------
- 黑马程序员----C#中的流程控制语句之异常处理语句
- 黑马程序员----C#中的流程控制语句之分支语句
- 黑马程序员----C#中的流程控制语句之循环语句
- 黑马程序员----C#中的流程控制语句之跳转语句
- 黑马程序员----流程控制语句之循环语句
- 黑马程序员_流程控制语句之循环语句
- 黑马程序员-流程控制语句
- 黑马程序员 C#基础流程控制_条件语句
- 黑马程序员 c#基础流程控制_循环语句
- C#中的主要流程控制语句之条件语句
- C#中的主要流程控制语句之循环语句
- C#中的主要流程控制语句之跳转语句
- 黑马程序员--程序中的流程有哪些语句控制
- 黑马程序员--JAVA基础之流程控制语句
- 3--黑马程序员--技术总结之流程控制语句
- 黑马程序员----java基础之流程控制语句
- C#之流程控制语句
- C#之流程控制语句
- python 中 with as的用法
- sublime Text 2取消自动检查更新
- JS计算前一天或后一天等
- Python3入门学习以及与2x版本的变化部位整理(持续)
- java 23种设计模式
- 黑马程序员----C#中的流程控制语句之异常处理语句
- BZOJ 1049([HAOI2006]数字序列-数字序列LIS与分块)
- hdu 4546 输入n个数 问这n个数相加组成的第K小的数是什么
- platform设备驱动简介
- Android常用控件(三)- ProgressBar、ListView
- Python学习
- 【cocos2d-x】在一个cpp中展示多个场景
- SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎
- 大红大紫的Hadoop(转载)