码迷,mamicode.com
首页 > 其他好文 > 详细

异常处理(待更新)

时间:2018-01-18 13:23:38      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:stat   语句   png   编译   info   rgs   main   console   逻辑错误   

1.错误类型

  • 在程序中发生的错误的类型有三种。它们是: 语法错误:语法错误发生在语句没有适当构造、关键字被拼错或标点被忽略的时候。
  • 逻辑错误:逻辑错误发生在程序编译和运行正常但没有产生预期的结果的时候。
  • 运行时错误:运行时错误发生在程序试图完成一个操作,但它在运行时不被允许。

2.异常类

  许多异常类都是直接或者间接的派生自System.Exception类

3.通用的异常类

技术分享图片

技术分享图片

 

4.C#中异常处理是通过4个关键字来实现的:try catch finally throw

 5.try catch:

namespace ConsoleApplication10
{
class Excep
{
public int division(int a, int b)
{
return a / b;
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入第一个数");
int a = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("请输入第二个数");
int b = Convert.ToInt32(Console.ReadLine());

Excep excep = new Excep();
try
{
excep.division(a, b);
}
catch (Exception e)
{

Console.WriteLine("can‘t division by zero");
}
Console.ReadKey();

 

}
}
}

技术分享图片

6.在try/catch后加入finally块,可以确保无论是否发生异常,finally块中的代码总能被执行

namespace ConsoleApplication10
{
class Excep
{
public int division(int a, int b)
{
return a / b;
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入第一个数");
int a = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("请输入第二个数");
int b = Convert.ToInt32(Console.ReadLine());

Excep excep = new Excep();
try
{
Console.WriteLine("code1");
excep.division(a, b);
Console.WriteLine("code2");
}
catch (DivideByZeroException e)
{

Console.WriteLine(e.Message);
}
finally
{
Console.WriteLine("finsh");
}
Console.ReadKey();

 

}
}
}

技术分享图片

  注:捕捉类型的判断

 

异常处理(待更新)

标签:stat   语句   png   编译   info   rgs   main   console   逻辑错误   

原文地址:https://www.cnblogs.com/sunxiaoyan/p/8309334.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!