OverflowException 클래스

정의

checked 컨텍스트의 산술, 캐스팅 또는 변환 연산으로 인해 오버플로가 발생하는 경우 throw되는 예외입니다.The exception that is thrown when an arithmetic, casting, or conversion operation in a checked context results in an overflow.

public ref class OverflowException : ArithmeticException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class OverflowException : ArithmeticException
type OverflowException = class
    inherit ArithmeticException
Public Class OverflowException
Inherits ArithmeticException
상속
특성

설명

OverflowException 런타임에 다음과 같은 경우 throw 됩니다.An OverflowException is thrown at run time under the following conditions:

  • 산술 연산 작업에서 반환 되는 데이터 형식 범위 밖에 있는 결과 생성 합니다.An arithmetic operation produces a result that is outside the range of the data type returned by the operation. 다음 예제는 OverflowException 범위를 오버플로 하는 곱하기 연산에서 throw 되는 Int32 형식입니다.The following example illustrates the OverflowException that is thrown by a multiplication operation that overflows the bounds of the Int32 type.

    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.
    
    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.
    
  • 축소 변환을 수행 하려면 캐스팅 또는 변환 작업을 시도 하 고 원본 데이터 형식의 값을 대상 데이터 형식의 범위를 벗어났습니다.A casting or conversion operation attempts to perform a narrowing conversion, and the value of the source data type is outside the range of the target data type. 다음 예제는 OverflowException 큰 부호 없는 바이트 값을 부호 있는 바이트 값으로 변환 하려고 하 여 throw 되는 합니다.The following example illustrates the OverflowException that is thrown by the attempt to convert a large unsigned byte value to a signed byte value.

    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.
    
    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.
    

각각의 경우 작업의 결과 값 보다 작은 MinValue 속성 보다 크거나는 MaxValue 작업에서 발생 하는 데이터 형식 속성입니다.In each case, the result of the operation is a value that is less than the MinValue property or greater than the MaxValue property of the data type that results from the operation.

Throw 산술, 캐스팅 또는 변환 작업에는 OverflowException, 작업이 확인 된 컨텍스트에서 수행 해야 합니다.For the arithmetic, casting, or conversion operation to throw an OverflowException, the operation must occur in a checked context. 기본적으로 산술 연산 및 Visual Basic의 오버플로 확인 됩니다. C#으로 되지 않습니다.By default, arithmetic operations and overflows in Visual Basic are checked; in C#, they are not. Unchecked 컨텍스트에서 작업이 발생 하는 경우 결과 대상 형식에 맞지 않는 상위 비트가 삭제 되어 잘립니다.If the operation occurs in an unchecked context, the result is truncated by discarding any high-order bits that do not fit into the destination type. 다음 예제에서는 C#에서 사용 하는 비 검사 변환을 보여 줍니다.The following example illustrates such an unchecked conversion in C#. Unchecked 컨텍스트에서 앞의 예제를 반복합니다.It repeats the previous example in an unchecked context.

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.

다음 Microsoft intermediate language (MSIL) 명령의 throw는 OverflowException:The following Microsoft intermediate language (MSIL) instructions throw an OverflowException:

  • add.ovf. <signed>add.ovf. <signed>

  • conv.ovf. <입력 >conv.ovf. <to type>

  • conv.ovf. <입력 > .unconv.ovf. <to type> .un

  • mul.ovf. <type>mul.ovf. <type>

  • sub.ovf. <type>sub.ovf. <type>

  • newarr

OverflowException 값 0x80131516 HRESULT COR_E_OVERFLOW를 사용 합니다.OverflowException uses the HRESULT COR_E_OVERFLOW, which has the value 0x80131516.

인스턴스의 초기 속성 값의 목록을 OverflowException, 참조는 OverflowException 생성자입니다.For a list of initial property values for an instance of OverflowException, see the OverflowException constructors.

생성자

OverflowException()

OverflowException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the OverflowException class.

OverflowException(SerializationInfo, StreamingContext)

serialize된 데이터를 사용하여 OverflowException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the OverflowException class with serialized data.

OverflowException(String)

지정된 오류 메시지를 사용하여 OverflowException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the OverflowException class with a specified error message.

OverflowException(String, Exception)

지정된 오류 메시지와 해당 예외의 원인인 내부 예외에 대한 참조를 사용하여 OverflowException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the OverflowException class with a specified error message and a reference to the inner exception that is the cause of this exception.

속성

Data

예외에 대한 사용자 정의 추가 정보를 제공하는 키/값 쌍의 컬렉션을 가져옵니다.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(다음에서 상속됨 Exception)
HelpLink

이 예외와 연결된 도움말 파일에 대한 링크를 가져오거나 설정합니다.Gets or sets a link to the help file associated with this exception.

(다음에서 상속됨 Exception)
HResult

특정 예외에 할당된 코드화된 숫자 값인 HRESULT를 가져오거나 설정합니다.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(다음에서 상속됨 Exception)
InnerException

현재 예외를 발생시킨 Exception 인스턴스를 가져옵니다.Gets the Exception instance that caused the current exception.

(다음에서 상속됨 Exception)
Message

현재 예외를 설명하는 메시지를 가져옵니다.Gets a message that describes the current exception.

(다음에서 상속됨 Exception)
Source

오류를 발생시키는 애플리케이션 또는 개체의 이름을 가져오거나 설정합니다.Gets or sets the name of the application or the object that causes the error.

(다음에서 상속됨 Exception)
StackTrace

호출 스택의 직접 실행 프레임에 대한 문자열 표현을 가져옵니다.Gets a string representation of the immediate frames on the call stack.

(다음에서 상속됨 Exception)
TargetSite

현재 예외를 throw하는 메서드를 가져옵니다.Gets the method that throws the current exception.

(다음에서 상속됨 Exception)

메서드

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetBaseException()

파생 클래스에서 재정의되었을 때, 하나 이상의 후속 예외의 근본 원인이 되는 Exception을 반환합니다.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(다음에서 상속됨 Exception)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetObjectData(SerializationInfo, StreamingContext)

파생 클래스에서 재정의될 때, 예외에 관한 정보를 SerializationInfo에 설정합니다.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(다음에서 상속됨 Exception)
GetType()

현재 인스턴스의 런타임 형식을 가져옵니다.Gets the runtime type of the current instance.

(다음에서 상속됨 Exception)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 예외에 대한 문자열 표현을 만들고 반환합니다.Creates and returns a string representation of the current exception.

(다음에서 상속됨 Exception)

이벤트

SerializeObjectState

예외에 대한 serialize된 데이터가 들어 있는 예외 상태 개체가 만들어지도록 예외가 serialize될 때 발생합니다.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(다음에서 상속됨 Exception)

적용 대상

추가 정보