新手C#异常的学习2018.08.07
2024-09-24 12:30:19
异常是在程序执行期间出现的问题。C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。
class Program
{
static void Main(string[] args)
{
System.IO.File.Delete(@"F:\output.txt");
System.IO.File.Delete(@"F:\面向对象2.exe");
System.IO.File.Delete(@"F:\input.txt");
Console.ReadKey();
}
}
上述代码中,若面向对象2.exe文件被打开,程序执行时会抛异常,我们会发现output.exe已经被删除,但是input.exe并未被删除,可见异常产生时,异常代码前面的代码会被执行,后面的不会被执行,为了处理异常产生,采用try,catch关键词。
class Program
{
static void Main(string[] args)
{
System.IO.File.Delete(@"F:\output.txt");
/*如果try中的代码执行发生异常,直接执行catch中的代码会被执行,catch之后的代码会继续往下执行
* 如果不加try-catch,代码执行抛出异常后,后面的代码不会继续执行
*/
try
{
System.IO.File.Delete(@"F:\面向对象2.exe");
}
catch
{
Console.WriteLine("删除失败");
}
System.IO.File.Delete(@"F:\input.txt");
Console.ReadKey();
}
}
运行面向对象2.exe文件,当代码被编译时,输出结果为“删除失败”,但是output.txt和input.txt文件均成功被删除,面向对象2.exe文件未被删除。可见当执行try失败后,直接运行catch及catch后续的代码。
但是在上述代码执行时,我们并不知道异常的原因,采用下列代码可以弹出异常原因
try
{
System.IO.File.Delete(@"F:\面向对象2.exe");
}
catch(Exception error)
{
Console.WriteLine("删除失败,错误为{0}",error.Message);//可以显示异常原因
}
在catch()中加入Exception xx,可以在运行结果中弹出抛异常的原因,结果截图如下
不要随意地使用try catch,异常是一种“未考虑的情况”,尽量不要靠try catch来实现正常的逻辑,程序员应该要自身完善程序的逻辑性,避免出现异常。可以抓取某一类异常,例如
catch(FileNotFoundException ex)
{
Console.WriteLine("读取文件不存在,错误为{0}",ex.Message);
}
try finally,无论try中的语句有无成功执行,finally中的语句在最后都会被执行,可以用try catch... finally。
2018.08.07
最新文章
- PHP 面向对象编程和设计模式 (4/5) - 异常的定义、扩展及捕获
- Ubuntu14.0下安装Zend Framework 2
- Asp.Net调试方法备忘
- APP账号密码传输安全分析
- [转]在VS2010 VC++项目中引用Lib静态库(以Openssl为例)
- OracleINSERT提示IGNORE_ROW_ON_DUPKEY_INDEX
- word添加页码
- POJ3176Cow Bowling
- CSE(Corrupted State Exceptions) 严重异常处理办法
- Linux编程学习笔记 -- Process
- .Net程序跑在Linux上
- python基础:测量python代码的运行时间
- Builder模式详解及其在Android开发中的应用
- JS学习笔记:(三)JS执行机制
- CDN(Content Delivery Network)技术原理概要
- Nginx 的 access log 如何以 json 形式记录?
- Solr5.5高级应用(基于tomcat9)
- 020100——00002_OS库
- Oracle 正则表达式函数-REGEXP_REPLACE
- Linux之JDK1.8的安装