C# 中的异常捕获和处理
来源:互联网 发布:win10右下角网络红叉 编辑:程序博客网 时间:2024/06/06 11:34
异常是程序运行中发生的错误,异常处理是程序的一部分,错误的出现并不总是编写应用程序员的原因,有事应用程序会因为终端用户的操作而发生错误。无论如何,在编写程序前都应该预测应用程序和代码中出现的错误。
三种异常的处理语句
1.try ... catch //捕获异常
2.try ... finally //清除异常
3.try ... catch ... finally // 处理所有异常
捕获异常:
try
{
//包含容易产生异常的代码
}
catct(异常类 ,异常实例对象)
{
//异常处理代码
}
namespace 捕获异常{class Program{static void Main(string[] args){//利用 try catch 语句捕获数组越界问题int[] arr = { 0, 1, 2, 3, 1, 2, 3, 3, 4, 5 };try{for (int i = 0; i <= arr.Length; i++){Console.Write(arr[i] + " ");}}catch(Exception myex){//Message.Tostring()中的Message是获取描述当前异常消息Console.WriteLine(myex.Message.ToString());}//此语句虽然可以给出异常提示,并不能智能描述异常的原因//catch { Console.WriteLine("发生异常"); }Console.ReadKey();}}}
用户不能获得对异常对象的访问,而该对象含 有重要的出错星星,也就不能得到出错的信息。
清除、处理所有异常
如果用户对产生错误不进行处理,而消除产生的错误分配的资源
try
{
// 包含容易产生异常的代码
}
finally
{
//用于消除try 块中分配的任何资源以及 运行任何即使在发生异常时也必须执行的代码
}
最好的组合,合并两种错误处理技术,即捕获错误、消除并继续执行应用程序
try
{
//包含容易产生异常的代码
}
catct(异常类 ,异常实例对象)
{
//异常处理代码
}
finally
{
//用于消除try 块中分配的任何资源以及 运行任何即使在发生异常时也必须执行的代码
}
注意:处理异常会大大地降低性能,不妥将他用在控制正常程序流程中,如采用有可能检测到代码中 导致异常的状态,请执行这种操作。 不妥在处理该状态之前捕获异常本是,如除一个数时,可通过if先判断数据不等0,然后在进行相除。
引发异常
在编写程序是,有事肯要引发异常,以便捕获异常
引发异常的格式为:
throw new 异常类(异常信息);
异常类 :预定义,自定义
异常信息:字符串“格式转换错误”
实例 :
为Program 类定义一个将字符串转换成整数的私有静态方法StringToInt;它含有一个字符串类型参数,返回一个整数,然后通过这个使用方法将一个不能转换成整数的字符串转换成整数故而引发异常,
namespace 引发异常{class Program{private static int StringToInt(string mystr) {int outnum = 0;try{outnum = Convert.ToInt32(mystr);return outnum;}catch{throw new FormatException("格式不正确(自己写的)");}}static void Main(string[] args){string str = "51zxw";try{Console.WriteLine(StringToInt(str));}catch(FormatException ex){Console.WriteLine(ex.Message.ToString());}Console.ReadKey();}}}
预定义异常类
自定义异常类
C#语言虽然预定义了许多异常类,但是,在有些场合,创建自己的异常类可能会方便。自定义异常类是通过继承System.Excetion类来创建自己的异常
声明异常的格式:
class 自定义的异常了吗:Exception{}
引发异常格式
throw(自定义异常类名)
阅读全文
1 0
- C# 中的异常捕获和处理
- 异常的捕获和处理
- 异常的捕获和处理
- 异常的捕获和处理
- 异常的捕获和处理
- c++异常捕获和处理
- 异常捕获和处理/笔记
- C#未捕获异常处理方法
- C#未捕获异常处理方法
- C++、Java和C#中的异常处理
- C++、Java和C#中的异常处理
- C++、Java和C#中的异常处理
- C++、Java和C#中的异常处理
- java中的异常捕获及处理
- C#中的try—catch异常捕获
- c#中的捕获派生类异常
- C#中的try—catch异常捕获
- C#中的异常捕获(try catch finally)
- linux各文件夹含义和作用
- java访问权限(修饰符使用范围)
- Linux 字符处理命令
- springboot-日志处理(二)-2
- 状态模式--将条件拆分出去的漂亮方法
- C# 中的异常捕获和处理
- Srpingboot-JPA使用
- 五种方式让你在java中读取properties文件内容
- [JMS]java消息服务入门
- 从5个维度来看C语言指针(指针就是个纸老虎)
- linux如何在sublime中输入中文
- C/C++中extern关键字详解
- 20170729学习笔记之异常处理
- ubuntu the system is running in low-graphics mode 解决办法