C#异常捕捉

来源:互联网 发布:mac 双系统mac丢失 编辑:程序博客网 时间:2024/06/05 02:55

越来越意识到自己的基础不够扎实。

这段时间打算回个炉,先从C#开始。

我准备把SIKI和极客学院的视频都过一遍。

手上还有本《C#高级编程第九版》可以翻一翻,但是说实话我对这本书不太抱有期望了,如果说看视频可以让我快速掌握一些常用的代码,看这本书只会让我越来越迷糊,真的太复杂了,很多句子读了几遍也不知道它在说啥。暂且将它当做一本工具书吧。


出发点:预测应用程序中出现的错误,并进行相应编码。

比如说我们需要读取文件,其实代码并没有读取权限;要发送网络请求,结果网络断开;要使用数组,结果索引越界;要计算除法,结果用户输入的除数是0。这些都会导致异常,如果不进行相应编码会导致程序卡死。


这是从siki视频的截图


using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Net;using System.Net.Sockets;namespace CShape{    class Program    {        static void Main(string[] args)        {            int num1 = 100;            int num2 = 0;            try            {                int num3 = num1 / num2;            }            catch (NullReferenceException e)            {                Console.WriteLine(e.Message);            }            catch (Exception e) {                Console.WriteLine(e.Message);            }            finally            {                Console.WriteLine("anyway```````");                Console.ReadKey();            }        }    }}

运行结果:

try中代码抛出异常 ,被第二个catch段捕捉到,然后执行finally

Exception派生自Object,通常不在代码中抛出,因为无法确定错误情况的本质(C#高级编程),而且耗费性能(极客学院视频)。



有很多派生自Exception的类,可以代表具体的错误

极客学院视频截图


还有

IndexOutOfRangeException

StackOverflowException

EndOfStreamException


0 0
原创粉丝点击