当前位置:首页 > C#学习 > 正文内容

异常与异常处理

小道7年前 (2018-08-20)C#学习5447

传统的错误表示方式:错误码。举例。需要知道不同错误码的含义,如果不处理错误码,则程序可能陷入不可以预置的错误。陈摄影师以为文件已经被删除造成的麻烦。

错误码的缺点:不处理则很难发现,每次处理则很麻烦;

难以看出错误的原因;容易使得程序进入不确定状态。

try catch。Exception ex 异常也是对象。

Exception 类主要属性:Message、StackTrace

发生异常后程序默认就退出了,try代码块中的后续代码不会被执行。catch以后的代码则会继续执行。

不要吃掉异常,一般情况下不需要处理异常。

扔出自己的异常,扔:throw,抓住:catch

        static void Main(string[] args)
        {
            try//将可能发生异常的 语句放到这里面
            {
                Console.WriteLine("请输入一个数字:");//提示输出
                int i = Convert.ToInt32(Console.ReadLine());//接收用户输入的字符串
                Console.WriteLine("你输入的i为:{0}", i);//输出i的值
            }
            catch(Exception ex)//输出异常的结果
            {
                Console.WriteLine("数据错误!"+ex.Message+"异常堆栈:"+ex.StackTrace);//提示错误信息。
            }
            Console.ReadKey();//按任意键退出。
        }

输出结果:

image.pngimage.png


    class Program
    {
        static void Main(string[] args)
        {
            try//将可能发生异常的 语句放到这里面
            {
                Console.WriteLine("请输入一个数字:");//提示输出
                int i = Convert.ToInt32(Console.ReadLine());//接收用户输入的字符串
                SS(i);//调用SS函数。
            }
            catch(Exception ex)//输出异常的结果  catch就是将错误信息抓回来。
            {
                Console.WriteLine("数据错误:" + ex.Message);//可以输出创建的 错误信息。
            }
            Console.ReadKey();//按任意键退出。
        }
        static string SS(int s)
        {
            if (s > 0 && s < 2)
            {
                return "幼儿";
            }
            else if (s > 1 && s < 18)
            {
                return "少年";
            }
            else if (s > 18 && s < 100)
            {
                return "成年人";
            }
            else if (s > 100)
            {
                throw new Exception("老寿星");
            }
            else if (s < 0)
            {
                throw new Exception("还没出世");//创建一个错误 输出的信息   throw 就是将错误信息扔出去,catch就是将错误信息抓回来。
            }
            else
            {
                throw new Exception("未知情况");//创建一个错误 返回的信息
            }
        }
    }

输出结果:

image.png

扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://www.daobk.com/post/41.html

分享给朋友:
返回列表

上一篇:继承

下一篇:常量

“异常与异常处理” 的相关文章

if语句应用:依次提示用户输入两个整数

if语句应用:依次提示用户输入两个整数

依次提示用户输入两个整数(假设i1、i2)。如果i1、i2都是正数,则将i1的值递增一个数,然后打印i1+i2的值;如果i1、i2都是负数,则将i1的值递减10个数,然后打印i1*i2的值;如果i1、i2中任一个为0,则提示数据有错误;否则计算i1*i2的绝对值。   ...

foreach语句:依次读取数组中的元素。

foreach语句:依次读取数组中的元素。

foreach和for的区别:for可以不逐个遍历,比如每隔一个遍历一个,或者可以从后向前遍历。只能(只应该)在foreach对集合进行读,而不应该写。foreach语句:依次读取数组中的元素。         ...

函数的ref、out参数

函数的ref、out参数

函数参数默认是值传递的,也就是“复制一份”ref必须先初始化,因为是引用,所以必须先“有”,才能引用,而out则是内部为外部赋值,所以不需要初始化,而且外部初始化也没用。ref应用场景内部对外部的值进行改变,out则是内部为外部变量赋值,out一般用在函数有多个返回值的场所。  ...

构造函数

构造函数

构造函数用来创建对象,并且可以在构造函数中对对象进行初始化。构造函数是用来创建对象的特殊函数,函数名和类名一样,没有返回值,连void都不用。构造函数可以有参数,new对象的时候传递函数参数即可构造函数可以重载,也就是有多个参数不同的构造函数。如果不指定构造函数,则类有一个默认的无参构造函数。如果指...