首先要知道int型在c#中是一个32位的数。由此可以知道int型的取值范围是(-2147483648~2147483647)当要使用int的最小值或者是最大值的时候,可以使用int.MinValue和int.MaxValue这两个属性。

这里我们要讨论的是int型数溢出,事实上当在int型中的最大+1 就会变成最小值。当我们希望这个int值不会超过限制时,可以通过手动启用溢出检查功能。

  在Visual Studio中是允许设置项目属性来启用或者禁止溢出检查的。解决方案资源管理器------》右击选择属性-------》在属性对话框中勾线生成---------》单击右下角的高级按钮--------》在高级生成设置对话框中勾选检查运算上溢/下溢选项

  在代码中可以用checked和unchecked关键字选择性打开和关闭程序一个特定部分的整数溢出检查,这些关键字将覆盖项目的编译器选项。

  checked关键字是打开运算溢出检查,unchecked相反。

  

上面程序将a变量设置为int数据的最大值,当执行checked检测时,就会抛出OverflowException异常。

而使用了unchecked就会强制不检查溢出的代码块。就不会抛出OverflowException这个异常。

需要注意的地方是:只有在checked快中的整数运算才会检查,对于快中的方法调用,不会检查所调用方法中的整数运算。

  异常处理器和Visual Studio调试器

  在Visual Studio中调试器默认只在发生未处理异常时才会中断应用程序,但有时候需要调试应用程序本身,这样就需要再议程被应用程序捕捉之前跟踪他们。可以很容易的启用该功能:

选择-----》调试窗口-----》异常设置

c# 使用checked和unchecked的更多相关文章

  1. Java异常之checked与unchecked

    首先,java的异常分为Error和Exception.这两类都是接口Throwable的子类.Error及Exception及其子类之间的关系,大致可以用下图简述. 注意事项: 1. Error仅在 ...

  2. C# checked和unchecked详解

    1.对基元类型执行的许多算术运算都可能造成溢出,有如下代码: Byte b=100; b=(Byte)(b+200); 简单的解读上面的代码: 第一步,将所有的操作数都扩大至32位或者64位(根据操作 ...

  3. Checked Exception & Unchecked Exception

    查Spring事务管理时看到一句话: Spring使用声明式事务处理,默认情况下,如果被注解的数据库操作方法中发生了unchecked异常,所有的数据库操作将rollback:如果发生的异常是chec ...

  4. C# checked和unchecked运算符

    1.作用 checked和unchecked运算符用于CLR(公共语言运行时)强制对它们所作用的代码块,进行(不进行)代码溢出检测 2.示例说明 有代码如下: static void Main(str ...

  5. checked 和 unchecked 基元类型操作

    对基元类型执行的许多算术运算都可能造成溢出: Byte b = ; b = (Byte) (b + ); // b 现在包含 44(或者十六进制值 2C) 重要提示:执行上述算术运算时,第一步要求所有 ...

  6. C# checked和unchecked 关键字详解

    checked 和 unchecked关键字用来限定检查或者不检查数学运算溢出的:如果使用了checked发生数学运算溢出时会抛出OverflowException:如果使用了unchecked则不会 ...

  7. 使用checked和unchecked来对整数溢出进行检测和忽略

    在C#中,整数int32的取值为-2147483648~2147473647(可以通过int.MaxValue和int.MinValue获得)当超出这个范围后,编译器不会进行检查,仍然会进行运算,但得 ...

  8. C#基础之checked与 unchecked的使用

    C#基础之checked与 unchecked的使用 以上都是C#中的两个关键字的使用.据官网给出的相关介绍是:C# 语句既可以在已检查的上下文中执行,也可以在未检查的上下文中执行. 在已检查的上下文 ...

  9. Checked 和 UnChecked 异常 的使用场合

    异常的概念  任何的异常都是Throwable类(为何不是接口??),并且在它之下包含两个子类Error / Exception,而Error仅在当在Java虚拟机中发生动态连接失败或其它的定位失败的 ...

随机推荐

  1. awk 和 sed (Stream Editor)

    1.sed pattern space(模式空间)相当于车间sed把流内容在这里处理: hold space(保留空间)相当于仓库,加工的半成品在这里临时储存(当然加工完的成品也在这里存储). h/H ...

  2. 如何注册Navicat for MySQL软件

    https://jingyan.baidu.com/article/6181c3e061ca18152ef153b6.html 给力的经验 在注册界面里面输入信息 名:随便输入 组织:随便输入 注册码 ...

  3. caz,数字证书,公钥

    如何有效检查证书有效性? https://www.jianshu.com/p/f4a37da10c53 自签名的https证书是不安全的 https://www.cnblogs.com/liyy201 ...

  4. Finecms模板标签调用小结 方便快速入门

    最近接了一个单子客户要求用finecms进行建站,由于也是php代码,也可以直接调用相关函数,所以上手相对比较快,ytkah总结了一些常用的函数方便您快速入门Finecms.一个网站一般由主页.栏目页 ...

  5. 002-读书笔记-企业IT架构转型之道-阿里巴巴中台战略思想与架构实战-第二章 构建业务中台的基础-共享服务体系简介

    2.1.回归SOA的本质-服务重用 SOA理念的核心价值:松耦合的服务带来业务的复用,通过服务的编排助力业务的快速响应和创新. 现有模式多是烟囱式结合 ESB 企业总线打通不同系统间的交互. 2.2. ...

  6. UltraISO 9.7.0.3476中文完美破解安装版

    https://cn.ultraiso.net/uiso9_cn.exe 简体中文版专用:        注册名:Guanjiu 注册码:A06C-83A7-701D-6CFC 多国语言版专用: 注册 ...

  7. 帝国cms判断某一字段是否为空

    <?php if(empty($navinfor[buy])) { ?> <? } else { ?> <h2 class="buy">< ...

  8. DLNg-CNN第一周

    1.边缘检测示例 *表示卷积操作,标准表示.使用3*3的过滤器对其进行卷积,将3*3的覆盖在左侧上,并将运算结果相加:第二步将窗口向右移动一个单位,进行计算...横向之后再将窗格下移一个,进行循环.. ...

  9. python repr和str

    都是将对象转换为字符串 repr """ repr(object) -> string Return the canonical string representa ...

  10. webpack使用七

    产品阶段的构建 目前为止,我们已经使用webpack构建了一个完整的开发环境.但是在产品阶段,可能还需要对打包的文件进行额外的处理,比如说优化,压缩,缓存以及分离CSS和JS. 对于复杂的项目来说,需 ...