zoukankan      html  css  js  c++  java
  • C# 中的异常捕捉(try)和异常处理(catch)

    转载自:https://blog.csdn.net/seattle1215/article/details/6660777?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

    为了捕捉异常,代码要放到一个 try 块中(try 是 C# 关键字)。代码运行时它会尝试执行 try 块内的所有语句。如果没有任何语句产生一个异常,这些语句将一个接一个运行,直到全部完成。然而,一旦出现异常,就会跳出 try 块,并进入一个 catch 处理程序中执行。

            在try块后紧接着写一个或多个 catch 处理程序(catch 也是 C# 关键字),用它们处理任何发生的错误。每个 catch 处理程序都负责捕捉并处理一种特定类型的异常,你可以在一个 try 块后面写多个 catch 处理程序。try 块中的任何一个语句造成错误,“运行时”(runtime)都会生成并抛出一个异常。然后“运行时”将检查 try 块之后的 catch 处理程序,将控制权移交给一个匹配的处理程序。

            catch 处理程序结束之后,程序将从处理程序之后的第一个语句继续执行

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5  
     6 namespace TryAndCatch
     7 {
     8     class Program
     9     {
    10         static void Main(string[] args)
    11         {
    12             try
    13             {
    14                 int a;
    15                 string b;
    16  
    17                 Console.WriteLine("请输入一个整数: ");
    18                 b = Console.ReadLine(); // ReadLine() 获取到的是 string 类型的数据
    19                 a = int.Parse(b);       // int.Parse 方法将 string 类型转换 int 类型
    20             }
    21  
    22             catch (Exception ex)    // 这是一个常规的 catch 处理程序,能捕捉一切异常
    23             {
    24                 Console.WriteLine(ex);
    25             }
    26         }
    27     }
    28 }

    由于 a 是 int 类型,所以要求输入的数据也要是 int 类型。此处输入 1.0,类型不符合,所以 try 块在此处会捕捉到一个 FornatException ( 格式异常 ),然后 catch 块会处理这个异常,在这里具体的做法就是输出错误信息。

             FornatException 属于 Exception。
    运行后结果如下图所示:

     将 try 和 catch 注释掉后代码如下:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5  
     6 namespace TryAndCatch
     7 {
     8     class Program
     9     {
    10         static void Main(string[] args)
    11         {
    12             ////try
    13             ////{
    14                 int a;
    15                 string b;
    16  
    17                 Console.WriteLine("请输入一个整数: ");
    18                 b = Console.ReadLine();
    19                 a = int.Parse(b);
    20             ////}
    21  
    22             ////catch (Exception ex)
    23             ////{
    24             ////    Console.WriteLine(ex);
    25             ////}
    26         }
    27     }
    28 }

    由于没有进行异常捕捉和异常处理,所以运行后结果如下:

  • 相关阅读:
    NET下RabbitMQ实践[WCF发布篇]
    基于Mongodb分布式存储物理文件
    NET下RabbitMQ实践[实战篇]
    关于Memcache mutex设计模式的.net实现
    使用ServiceStackRedis链接Redis简介
    NET下RabbitMQ实践[示例篇]
    基于MongoDB分布式存储进行MapReduce并行查询
    Asp.Net开发小技巧汇总
    愈敏洪讲座
    图标下载利器
  • 原文地址:https://www.cnblogs.com/SophieWang-cmu/p/12905344.html
Copyright © 2011-2022 走看看