C#学习笔记(7)——预处理器指令、异常处理

一个尝试错误的人生,不但比无所事事的人生更荣耀,并且更有意义。

目录

一、预处理器指令

1. 特点

2.  预处理器指令

二、异常处理

1. 关键字

 2. 语法

3. 异常类


一、预处理器指令

1. 特点

  1. 预处理器指令指导编译器在实际编译开始之前对信息进行预处理。
  2. 预处理器指令都是以 # 开始,只有空白字符可以出现在预处理器指令之前。
  3. 预处理器指令不是语句,结尾没有分号(;)。
  4. C# 编译器没有一个单独的预处理器,但指令被处理时就像是有一个单独的预处理器一样。
  5. 一个预处理器指令必须是该行上的唯一指令。

2.  预处理器指令

  • #define        用于定义一系列成为符号的字符                                                                              该指令创建符号常量。                                                                                                                语法:
    #define PI   //在关键字using的前面
  • #undef         用于取消定义符号
  • #if                用于测试符号是否为真                                                                                         该指令创建一个条件指令,用于测试符号是否为真,如果为真,编译器会执行 #if 和下一个指令之间的代码。
    #if (symbol1 == symbol2)
  • #else            用于创建复合条件指令,与 #if 一起使用
  • #elif              用于创建复合条件指令
  • #endif           指定一个条件指令的结束                                                                                     一个以 #if 指令开始的条件指令,必须显示地以一个 #endif 指令终止。                                   例:
    #define symbol1
    #define symbol2
    using System;
    namespace HelloWorldApplication
    {
       class HelloWorld
       {
          static void Main(string[] args)
          {
             #if (symbol1 == symbol2)
             	Console.WriteLine("symbol1 and symbol2 are defined!");
             #else
                Console.WriteLine("symbol1 and symbol2 are not defined!");
    		 #endif
             	Console.ReadKey();
          }
       }
    }
    
    结果:
    symbol1 and symbol2 are defined!
  • #error            允许从代码的指定位置生成一个错误                                                                    如果编译器遇到 #error 指令,就会给用户显示后面的文本,作为一条编译错误消息,然后会立即退出编译
  • #warning       允许从代码的指定位置生成一级警告                                                                    如果编译器遇到 #warning 指令,会给用户显示 #warning 指令后面的文本,之后编译继续进行。
  • #region          在使用 Visual Studio Code Editor 的大纲特性时,指定一个可展开或折叠的代码块
  • #endregion     标识着 #region 块的结束
  • #line             可以修改编译器的行数以及(可选地)输出错误和警告的文件名

二、异常处理

 异常是在程序执行期间出现的问题。异常处理对可能出现的问题进行处理以及清理资源。

1. 关键字

  • try            try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块。
  • catch       程序通过异常处理程序捕获异常。catch 关键字表示异常的捕获。
  • finally      用于执行给定的语句,不管异常是否被抛出都会执行。例如,如果您打开一个文                       件,不管是否出现异常文件都要被关闭。
  • throw       当问题出现时,程序抛出一个异常。使用 throw 关键字来完成。                               如果异常是直接或间接派生自 System.Exception 类,可以直接抛出一个对象。
    catch(Exception e)
    {
       .......
       throw e
    }

 2. 语法

try  //try块后可跟多个catch块
{
    //引起异常的语句
}
catch( ExceptionName e1 )
{
   // 错误处理代码
}
catch( ExceptionName e2 )
{
   // 错误处理代码
}
finally
{
   // 要执行的语句
}

 try/catch 块内的代码为受保护的代码。

3. 异常类

C# 异常是使用类来表示的。

System.SystemException 类是所有预定义的系统异常的基类。

预定义的系统异常类:

  • System.IO.IOException                           处理 I/O 错误。
  • System.IndexOutOfRangeException       处理当方法指向超出范围的数组索引时生成的错误。
  • System.ArrayTypeMismatchException    处理当数组类型不匹配时生成的错误。
  • System.NullReferenceException             处理当依从一个空对象时生成的错误。
  • System.DivideByZeroException              处理当除以零时生成的错误。
  • System.InvalidCastException                  处理在类型转换期间生成的错误。
  • System.OutOfMemoryException              处理空闲内存不足生成的错误。
  • System.StackOverflowException              处理栈溢出生成的错误。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值