OverflowException 會在下列情況下執行階段擲回︰

  • 算術運算會產生作業所傳回的資料型別範圍之外的結果。 下列範例說明 OverflowException 超出範圍的乘法運算所擲回 Int32 型別。

    C#
    int value = 780000000;
    checked {
    try {// Square the original value.int square = value * value; Console.WriteLine("{0} ^ 2 = {1}", value, square);
    }
    catch (OverflowException) {double square = Math.Pow(value, 2);Console.WriteLine("Exception: {0} > {1:E}.", square, Int32.MaxValue);
    } }
    // The example displays the following output:
    //       Exception: 6.084E+17 > 2.147484E+009.
    

  • 轉型或轉換作業會執行縮小轉換,而來源資料類型的值超出範圍的目標資料類型。 下列範例說明 OverflowException 所擲回的嘗試將大型的不帶正負號的位元組值轉換為帶正負號的位元組值。

    C#
    byte value = 241;
    checked {
    try {sbyte newValue = (sbyte) value;Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", value.GetType().Name, value, newValue.GetType().Name, newValue);
    }
    catch (OverflowException) {Console.WriteLine("Exception: {0} > {1}.", value, SByte.MaxValue);
    } }
    // The example displays the following output:
    //       Exception: 241 > 127.
    

在每個案例中,運算的結果,是值小於 MinValue 屬性或大於 MaxValue 作業所產生的資料型別屬性。

算術、 轉型或轉換作業會擲回 OverflowException, ,作業必須發生在檢查的內容。 根據預設,會檢查的算術運算和 Visual Basic 中的溢位。在 C# 中,它們不是。 如果作業發生在未經檢查的內容,結果會截斷並捨棄任何不適合在目的型別的高序位位元。 下列範例說明這類未檢查的轉換在 C# 中。 它會重複先前的範例中未檢查的內容。

C#
byte value = 241;
try {sbyte newValue = (sbyte) value;Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", value.GetType().Name, value, newValue.GetType().Name, newValue);
}
catch (OverflowException) {Console.WriteLine("Exception: {0} > {1}.", value, SByte.MaxValue);
}
// The example displays the following output:
//       Converted the Byte value 241 to the SByte value -15.

摘自:https://msdn.microsoft.com/zh-tw/library/system.overflowexception(v=vs.110).aspx

转载于:https://www.cnblogs.com/bonelee/p/6889426.html

csharp OverflowException——超出数值范围会抛出异常相关推荐

  1. 轻松应对Java试题,这是一份大数据分析工程师面试指南

    作者 | HappyMint 转载自大数据与人工智能(ai-big-data) 导语:经过这一段时间与读者的互动与沟通,本文作者发现很多小伙伴会咨询面试相关的问题,特别是即将毕业的小伙伴,所以决定输出 ...

  2. JavaScript基本概念——数据类型

    What doesn't kill you makes you stronger. ECMAScript数据类型 ECMAScript 中有5种简单(基本)数据类型:Undefined.Null.Bo ...

  3. 万字长文丨7个经典问题,助你拿下Java面试(建议收藏)

    擅长领域:execl.word.ppt 等 今日重点: ①  掌握面试的基本素质: ②  学会7个典型的java面试问题. 有问题的小伙伴欢迎加我主页vx.评论.点赞.收藏是对我最大的支持!!! 目录 ...

  4. 【Java】浅析Math类

    来总结一下一个有用的类:Math!! 属于java.lang.Math,即java.lang包,不需要import. 当然,为了方便用其中大量的静态方法和类变量,也可以用静态导入: import st ...

  5. 向iOS开发者介绍C++

    http://www.cocoachina.com/industry/20140415/8163.html 你已经精通了Objective-C,并且一直想学更酷的东西?看看这篇文章吧!本文将向iOS开 ...

  6. java抛异常 代替返回_Java使用和C++类似的异常处理

    Java使用和C++类似的异常处理 (2007-07-12 18:16:19) 1.处理错误的方法有很多流行方法 2.一般方法是把程序处理代码段分散到系统代码中,在可能发生错误的地方处理错误 优点:便 ...

  7. Java基础----【异常、线程】

    主要内容 异常.线程 第一章 异常 1.1 异常概念 异常,就是不正常的意思.在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常 :指 ...

  8. 八股文(Java基础部分)

    文章目录 一.基础概念与常识 1. Java语言有哪些特点? 2. JVM JDK JRE 3. 字节码 4. JAVA程序从源代码到运行 5.AOT(Ahead of Time Compilatio ...

  9. 面试题大全1-javaSE部分-JavaEE框架中间件

    文章目录 Java面试题大全 一.JavaSE 部分 基础部分 1.Java中基本数据类型有哪些? 2.Integer 和 int的区别 3.String和StringBuilder和StringBu ...

最新文章

  1. 自定义logback触发器策略进行日志滚动
  2. 后Hadoop时代的大数据技术思考:数据即服务
  3. C#设计模式(3)——工厂方法模式
  4. 新年春节项目海报设计,PSD分层模板,帮你顺利交稿!
  5. [转]SQL Collation冲突解决 临时表
  6. 热式气体质量流量计检定规程_新品发布:西尼尔ST51/54热式质量流量计
  7. 防止跨站攻击——CSRFToken
  8. 数据仓库实施步骤与关键成功因素
  9. 阿里巴巴泰山版《Java 开发者手册》,也是一份防坑指南
  10. adb命令——简单常用命令介绍:将文件从手机上传输到电脑里:adb pull /sdcard/123.png c:\users\del\desktop...
  11. 2022「第二届中国RPA+AI开发者大赛」正式收官
  12. XTP中CXTPReportControl中合并单元格
  13. JavaScript实现在线进制转换工具网站 -toolfk程序员工具网
  14. java 微信 推送_JAVA 微信消息模板推送
  15. OpenCV竟然可以这样学!成神之路终将不远(六)
  16. 初夏小谈:叩响C++世界的大门
  17. 安得广厦千万间,大赚天下寒士俱欢颜
  18. 基本ACL和高级ACL
  19. Linux pwm_fan 风扇驱动
  20. sql查询匹配数字开头或字母开头

热门文章

  1. Linux下C的线程同步机制
  2. 摘录nginx 信号处理方法部分代码
  3. blob 图片_《你不知道的 Blob》番外篇
  4. 冒泡排序出现的问题_停课不停学 | 有趣的算法——冒泡排序
  5. 增强for循环_增强for循环实际用法
  6. mysql存储数据,varchar类型中的数据变成了科学计数法?
  7. 虚拟机的ubunt系统在登录界面循环往复,登录不进去问题
  8. php的文件路径问题
  9. 【深度学习】基于Colab Pro的TPU训练模型教程(Tensorflow)
  10. 2 resize 到指定大小_阿里巴巴为什么让初始化集合时必须指定大小?