# OverflowException 类

## 定义

public ref class OverflowException : ArithmeticException
public class OverflowException : ArithmeticException
[System.Serializable]
public class OverflowException : ArithmeticException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class OverflowException : ArithmeticException
type OverflowException = class
inherit ArithmeticException
[<System.Serializable>]
type OverflowException = class
inherit ArithmeticException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type OverflowException = class
inherit ArithmeticException
Public Class OverflowException
Inherits ArithmeticException

## 注解

• 算术运算生成的结果超出了操作返回的数据类型范围。 以下示例演示了乘法运算引发的 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.

open Checked

let v = 780000000
try
// Square the original value.
let square = v * v
printfn $"{v} ^ 2 = {square}" with :? OverflowException -> let square = float v ** 2 printfn$"Exception: {square} > {Int32.MaxValue:E}."
// The example displays the following output:
//       Exception: 6.084E+17 > 2.147484E+009.

Dim value As Integer = 780000000
Try
' Square the original value.
Dim square As Integer = value * value
Console.WriteLine("{0} ^ 2 = {1}", value, square)
Catch e As OverflowException
Dim square As Double = Math.Pow(value, 2)
Console.WriteLine("Exception: {0} > {1:E}.", _
square, Int32.MaxValue)
End Try
' 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.

open Checked

let value = 241uy
try
let newValue = int8 value
printfn $"Converted the {value.GetType().Name} value {value} to the {newValue.GetType().Name} value {newValue}." with :? OverflowException -> printfn$"Exception: {value} > {SByte.MaxValue}."
// The example displays the following output:
//       Exception: 241 > 127.

Dim value As Byte = 241
Try
Dim newValue As SByte = (CSByte(value))
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
value.GetType().Name, value, _
newValue.GetType().Name, newValue)
Catch e As OverflowException
Console.WriteLine("Exception: {0} > {1}.", value, SByte.MaxValue)
End Try
' The example displays the following output:
'       Exception: 241 > 127.


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.

let value = 241uy
try
let newValue = int8 value
printfn $"Converted the {value.GetType().Name} value {value} to the {newValue.GetType().Name} value {newValue}." with :? OverflowException -> printfn$"Exception: {value} > {SByte.MaxValue}."
// The example displays the following output:
//       Converted the Byte value 241 to the SByte value -15.


• 已签名的 add.ovf.<>

• 要键入

• 要键入

• mul.ovf. <类型>

• sub.ovf. <类型>

• newarr

OverflowException 使用具有值0x80131516的 HRESULT COR_E_OVERFLOW。

## 构造函数

 初始化 OverflowException 类的新实例。 已过时. 使用序列化的数据初始化 OverflowException 类的新实例。 使用指定的错误消息初始化 OverflowException 类的新实例。 使用指定的错误消息和对作为此异常原因的内部异常的引用初始化 OverflowException 类的新实例。

## 属性

 获取键/值对的集合，这些键/值对提供有关异常的其他用户定义的信息。 (继承自 Exception) 获取或设置与此异常关联的帮助文件的链接。 (继承自 Exception) 获取或设置 HRESULT，它是分配给特定异常的编码数值。 (继承自 Exception) 获取导致当前异常的 Exception 实例。 (继承自 Exception) 获取描述当前异常的消息。 (继承自 Exception) 获取或设置导致错误的应用程序或对象的名称。 (继承自 Exception) 获取调用堆栈上即时帧的字符串表示形式。 (继承自 Exception) 获取引发当前异常的方法。 (继承自 Exception)

## 方法

 确定指定的对象是否等于当前对象。 (继承自 Object) 在派生类中重写时，返回一个或多个后续异常的根本原因 Exception。 (继承自 Exception) 用作默认哈希函数。 (继承自 Object) 已过时. 在派生类中重写时，使用有关异常的信息设置 SerializationInfo。 (继承自 Exception) 获取当前实例的运行时类型。 (继承自 Exception) 创建当前 Object的浅表副本。 (继承自 Object) 创建并返回当前异常的字符串表示形式。 (继承自 Exception)

## 事件

 已过时. 序列化异常以创建包含有关异常的序列化数据的异常状态对象时发生。 (继承自 Exception)