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

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

    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 所擲回的嘗試將大型的不帶正負號的位元組值轉換為帶正負號的位元組值。

     
    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# 中。 它會重複先前的範例中未檢查的內容。

 
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

csharp OverflowException——超出数值范围会抛出异常的更多相关文章

  1. javascript 学习一(概述+基本语法)

    http://js.do/ 概述 JavaScript :脚本语言 诞生于1995年. javascript 1.0,发布于Netscape Navigator 2  @1996年3月 布兰登·艾奇( ...

  2. JDBC相关知识

    一.连接数据库 1. 步骤 //1.创建一个Driver实现类的对象 Driver driver = new com.mysql.jdbc.Driver();//注意抛异常 //2.准备 url 和 ...

  3. JavaWeb(四):JDBC

    数据持久化(persistence) 把数据保存到可掉电式存储设备中以供之后使用. 大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各 ...

  4. 学习JDK1.8集合源码之--ArrayDeque

    1. ArrayDeque简介 ArrayDeque是基于数组实现的一种双端队列,既可以当成普通的队列用(先进先出),也可以当成栈来用(后进先出),故ArrayDeque完全可以代替Stack,Arr ...

  5. Java多线程| 01 | 线程概述

    Java多线程| 01 | 线程概述 线程相关概念 进程与线程 进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是操作系统进行资源分配与调度的基本单位.可以把进程简单的理解 ...

  6. 1-7 basket.js localstorage.js缓存css、js

    basket.js 源码分析   api 使用文档: http://t3n.de/news/basketjs-performance-localstorage-515119/       一.前言 b ...

  7. JDBC性能优化点

    1). 指定数据库连接池中初始化连接数的个数

  8. basket.js 源码分析

    basket.js 源码分析 一.前言 basket.js 可以用来加载js脚本并且保存到 LocalStorage 上,使我们可以更加精准地控制缓存,即使是在 http 缓存过期之后也可以使用.因此 ...

  9. storm如何分配任务和负载均衡?

    背景 在上篇:storm的基础框架分析 基本探讨了storm的: worker.executor等组件的关系. 线程模型和消息系统. 任务分配流程. topology提交到执行的过程. 但,感觉对ni ...

随机推荐

  1. iOS 从xib中加载自定义视图

    想当初在学校主攻的是.NET,来到公司后,立马变成java开发,之后又跳到iOS开发,IT人这样真的好么~~  天有不测风云,云还有变幻莫测哎,废话Over,let's go~ 新学iOS开发不久,一 ...

  2. checkbox与文字混排无法对齐到一行的解决办法

    直接上代码: <span><input style="vertical-align:middle" type="checkbox" name= ...

  3. [转]使用gdb调试异常

    有时程序中有未捕获的异常会导致程序异常的行为甚至导致程序的直接退出. 这对服务器程序来说是不可接受的. 可以使用gdb的catch命令来帮助我们调试异常. 使用gdb捕获异常的扔出点(相当于在扔出异常 ...

  4. (转) 分布式文件存储FastDFS(一)初识FastDFS

    http://blog.csdn.net/xingjiarong/article/details/50559849 一.FastDFS简介 FastDFS是一款开源的.分布式文件系统(Distribu ...

  5. day01-编程与计算机组成原理

    什么是编程 编程语言:是人与计算机沟通交流的介质,通过标准化的规则传递信息 编程:就是为了使计算机能够理解人的意图,通过编程语言写出一个个文件,这堆文件完成相应的目的 编程的目的:用计算机取代人完成工 ...

  6. 【原创】使用HTML5+canvas+JavaScript开发的原生中国象棋游戏及源码分享

    目前已经实现的功能: V1.0 : 实现棋子的布局,画布及游戏场景的初始化V2.0 : 实现棋子的颜色改变V3.0 :实现所有象棋的走棋规则V4.0 : 实现所有棋子的吃子功能 GItHub源码下载地 ...

  7. LOJ——#6277. 数列分块入门 1

    ~~推荐播客~~ 「分块」数列分块入门1 – 9 by hzwer 浅谈基础根号算法——分块 博主蒟蒻,有缘人可直接观摩以上大佬的博客... #6277. 数列分块入门 1 题目大意: 给出一个长为 ...

  8. 洛谷 2042 BZOJ 1500 NOI 2005 维护数列

    [题意概述] 维护一个数列,要求支持以下6种操作: [题解] 大Boss...可以用Treap解决 需要用到垃圾回收.线性建树. #include<cstdio> #include< ...

  9. LINUX 查看硬件配置命令

      系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # ...

  10. GROOVY简单语法实习

    慢慢的看<GROOVY IN ACTION>的一个中文节译本,根据上面的东东慢慢练习. 中文看起来确实比英文快好多...:) Book gina = new Book('Groovy in ...