C#异常数据处理

namespace 异常捕获
{
    internal class Program
    {
        static void Main(string[] args)
        {
            /*
             * try 尝试
             * catch 捕获
             * exception 例外
             */


            //错误有两种 运行时错误 和 编译错误
            //运行错误是看不到的 需要程序运行时才能知道代码是否错误
            //编译错误是我们可以通过编译器直接看到的错误
            //编译错误常见就是语法出错 类型不对 数据不存在
            // C# 是一种编译型语言, 代码需要通过编译器译成机器可以识别的代码才能运行

            //int a = "1"; //编译错误 可以直接看到
            //int a =  代码语句没写完造成编译错误


            /*
            //运行错误
            string str = "abc";
            // 整个代码在编译时无法发现错误 但是程序运行时 会出错
            //因为 int.Parse 在运行解析的字符串 不符合 数据类型规则 故而解析错误
            //但是这个错误只能在运行时发现 因此这种错误被称为运行错误
            int num = int .Parse(str);
            Console.WriteLine(num * 10);
            Console.ReadLine();
            */

            //_03_异常捕获 捕获的是运行时的错误
            Console.WriteLine("请输入一个数字");
            int num = int.Parse(Console.ReadLine());
            try
            {
              //尝试运行的代码 可能会出错


               num = int.Parse(Console.ReadLine());
            }
            catch (Exception)
            {
                 Console.WriteLine("你输入的数字不合法" );
                //当尝试运行的代码出错是时,运行 catch 中的代码


                //throw;
            }
            Console.WriteLine("你输入的数字是:" + num);

            Console.ReadLine();

          //作用域是一个代码块,通常指数据作用的代码块区域。所谓的代码块就是通过一个大括号 {} 包裹起来的代码
          //一个花括号包裹起来的内容就是一个代码块
          //作用域。 数据被创建时有一定的作用区域 一般只会在声明变量的代码块中使用

          int n;
          int num = 0;
          if (true)
          {
              n = 0;
              int  a = 10;
              Console.WriteLine(a);
              Console.WriteLine(num);
              //代码块的内部可以使用代码块外部的变量
              //int a = 10;
              //变量不能够重复声明
              //int num = 0;
              //不能重复声名变量 代码块外部的变量也不能在代码块内部重复声明


          }
          //在代码块对的外部不能使用代码块内部的变量
          //Console.WriteLine(a);

作用域和代码块


          if (true)
          {
              //不同代码块之间可以重名
              //不同代码之间 代码相互隔离 变量不会相互影响
              int a = 10;
              Console.WriteLine(a);
              //想要获取到不同作用域 中的数据 需要 提升变量。 将变量放在两个作用域都能获取的区域
              Console.WriteLine(n);
          }

          /*
          作用域
          //作用域。 数据被创建时有一定的作用区域 一般只会在声明变量的代码块中使用变量的值
          1. 代码块内部可以使用代码块外部的变量
          2. 代码块外部无法使用代码块内部的变量
          3. 代码块和代码块之间的代码可以相互独立 互不影响
          
          变量
          1. 变量只能作用于当前的代码块及后代的代码块中
          2. 变量在同一作用域中只能声明一次 不能重复生明 变量名称不能重名
          3. 变量在不同的作用域中 可以重名

          如果需要再不同作用域中获取数据,则需要将变量提升到两个或多个作用域都能获取到的作用域空间中
          */
 

        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值