今天来解决异常
1. 错误: 错误指的是我们写的源代码不符合C#的语法规范.
对于这种错误我们的Visual Studio绝大多数情况下 会以红色的波浪线提示.
后果: 就是源代码无法编译为 程序集 不能运行.
如何解决? 那就将源代码改为符合C#的语法规范就可以了.
有一些错误,VS不会提示的那么及时.甚至是不会提示的.
那如果我想知道我的源代码有没有语法错误. 可以按下F6 强制的让VS使用编译器来编译我们的源代码.
而编译器在编译的时候 会检查语法.
异常: 源代码是没有错误的.可以生成程序集并运行.
在程序运行的时候,当程序处于某种特定的情况下 程序的运行就会出错. 这种情况我们就称之为异常.
不是说一定会发生异常,只有在程序处于某种特停情况下的时候 才会发生异常,
程序如果发生了异常:
那么程序会崩溃. 停止运行.并关闭程序,后面的代码不会运行.
2. 如何处理程序的异常.
a. 为什么要处理:
如果不处理的话,当程序发生异常的时候 程序就会崩溃.
处理的目的: 当程序发生异常的时候 程序不会崩溃 并且继续往下运行.
b. 如何处理.
1). 能够使用代码逻辑来处理 进来使用逻辑代码来处理.
使用if结构来判断.
2). 对于不方便使用if来判断的,我们使用try-catch来处理异常.
3. 使用try-catch来处理异常.
a. 语法.
使用try 将有可能发生异常的代码 围起来.
在try后面 紧跟1个catch块.
b. 如果try中的代码在执行的时候发生了异常.
就会立即跳到catch块中执行代码.如果try后面还有代码,是不会执行的 执行完毕以后 继续往下执行.
如果try中的代码在执行的时候没有发生异常 就跳过catch块中的代码往下执行.
c. 一般情况下,我们使用try将有可能会发生异常的代码围起来. 所以你必须要知道那1段代码在运行的时候可能会发生异常.
在try里面 我们做异常处理.
//如果用户输入的不是整数,要求重新输入 直道是1个整数为止. while (true) { Console.WriteLine("请输入你的年龄"); try { int age = int.Parse(Console.ReadLine()); break; } catch { Console.WriteLine("请输入1个整数:"); continue; } }
4. 如何在catch中知道发生异常的信息.
在catch的后面加1个小括弧 在小括弧中声明1个Exception类型的变量.
当try中的代码发生异常的时候. 就会将发生异常的详细信息 赋值给 catch后面的Exception类型的变量.
ex.Message 取出发生异常的原因.
5. 在catch后面还可以跟1个finally块.
无论有没有发生异常,finally中的代码都会被执行.
try { Console.WriteLine("请输入第1个数:"); int numA = int.Parse(Console.ReadLine()); Console.WriteLine("请输入第2个数:"); int numB = int.Parse(Console.ReadLine()); int res = numA / numB; Console.WriteLine(res); } catch (Exception ex) { Console.WriteLine(ex.Message); //知道发生异常的详细信息. } finally { Console.WriteLine("我是finally块..."); } Console.WriteLine("没有崩溃啊...");
原文地址:http://www.cnblogs.com/sabry34126/p/3798395.html