• 异常处理try-catch


    今天来解决异常

    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("没有崩溃啊...");
  • 相关阅读:
    第三章 SpringCloud之Eureka-Client服务提供者
    第二章 SpringCloud之Eureka-Server服务发现组件
    第一章 SpringCloud简介
    Storm之WordCount初探
    Solr之java实现增删查操作
    Solr安装并导入mysql数据
    java之消息队列ActiveMQ实践
    Ant Design使用方法
    Reactjs之实现js跳转路由
    React之js实现跳转路由
  • 原文地址:https://www.cnblogs.com/sabry34126/p/3798395.html
Copyright © 2020-2023  润新知