OverflowException 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
확인된 컨텍스트에서 산술, 캐스팅 또는 변환 작업으로 인해 오버플로가 발생할 때 throw되는 예외입니다.
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 다음 조건에서 런타임에 throw됩니다.
산술 연산은 연산에서 반환된 데이터 형식의 범위를 벗어난 결과를 생성합니다. 다음 예제에서는 Int32 형식의 범위를 오버플로하는 곱하기 작업에 의해 throw되는 OverflowException 보여 줍니다.
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.
캐스팅 또는 변환 작업은 축소 변환을 수행하려고 시도하며 원본 데이터 형식의 값이 대상 데이터 형식의 범위를 벗어났습니다. 다음 예제에서는 부호 없는 큰 바이트 값을 부호 있는 바이트 값으로 변환하려고 시도하여 throw되는 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.
각 경우에서 작업의 결과는 MinValue
속성보다 작거나 작업 결과 데이터 형식의 MaxValue
속성보다 큰 값입니다.
산술, 캐스팅 또는 변환 연산이 OverflowExceptionthrow하려면 작업이 확인된 컨텍스트에서 발생해야 합니다. 기본적으로 Visual Basic의 산술 연산 및 오버플로가 선택됩니다. C# 및 F#에서는 그렇지 않습니다. 확인되지 않은 컨텍스트에서 작업이 발생하면 대상 형식에 맞지 않는 상위 비트를 삭제하여 결과가 잘립니다. 다음 예제에서는 C# 또는 F#에서 이러한 확인되지 않은 변환을 보여 줍니다. 선택되지 않은 컨텍스트에서 이전 예제를 반복합니다.
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.
다음 MSIL(Microsoft 중간 언어) 지침은 OverflowExceptionthrow합니다.
서명된
입력할 입력할 mul.ovf.
<형식>sub.ovf.
<형식>newarr
OverflowException 값이 0x80131516 HRESULT COR_E_OVERFLOW 사용합니다.
OverflowException인스턴스의 초기 속성 값 목록은 OverflowException 생성자를 참조하세요.
생성자
OverflowException() |
OverflowException 클래스의 새 인스턴스를 초기화합니다. |
OverflowException(SerializationInfo, StreamingContext) |
사용되지 않음.
직렬화된 데이터를 사용하여 OverflowException 클래스의 새 인스턴스를 초기화합니다. |
OverflowException(String) |
지정된 오류 메시지를 사용하여 OverflowException 클래스의 새 인스턴스를 초기화합니다. |
OverflowException(String, Exception) |
지정된 오류 메시지와 이 예외의 원인인 내부 예외에 대한 참조를 사용하여 OverflowException 클래스의 새 인스턴스를 초기화합니다. |
속성
Data |
예외에 대한 추가 사용자 정의 정보를 제공하는 키/값 쌍의 컬렉션을 가져옵니다. (다음에서 상속됨 Exception) |
HelpLink |
이 예외와 연결된 도움말 파일에 대한 링크를 가져오거나 설정합니다. (다음에서 상속됨 Exception) |
HResult |
특정 예외에 할당된 코딩된 숫자 값인 HRESULT를 가져오거나 설정합니다. (다음에서 상속됨 Exception) |
InnerException |
현재 예외를 발생시킨 Exception 인스턴스를 가져옵니다. (다음에서 상속됨 Exception) |
Message |
현재 예외를 설명하는 메시지를 가져옵니다. (다음에서 상속됨 Exception) |
Source |
오류를 발생시키는 애플리케이션 또는 개체의 이름을 가져오거나 설정합니다. (다음에서 상속됨 Exception) |
StackTrace |
호출 스택에서 직접 실행 프레임의 문자열 표현을 가져옵니다. (다음에서 상속됨 Exception) |
TargetSite |
현재 예외를 throw하는 메서드를 가져옵니다. (다음에서 상속됨 Exception) |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 여부를 확인합니다. (다음에서 상속됨 Object) |
GetBaseException() |
파생 클래스에서 재정의되는 경우 하나 이상의 후속 예외의 근본 원인인 Exception 반환합니다. (다음에서 상속됨 Exception) |
GetHashCode() |
기본 해시 함수로 사용됩니다. (다음에서 상속됨 Object) |
GetObjectData(SerializationInfo, StreamingContext) |
사용되지 않음.
파생 클래스에서 재정의되는 경우 예외에 대한 정보를 사용하여 SerializationInfo 설정합니다. (다음에서 상속됨 Exception) |
GetType() |
현재 인스턴스의 런타임 형식을 가져옵니다. (다음에서 상속됨 Exception) |
MemberwiseClone() |
현재 Object단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 예외의 문자열 표현을 만들고 반환합니다. (다음에서 상속됨 Exception) |
이벤트
SerializeObjectState |
사용되지 않음.
예외에 대한 직렬화된 데이터를 포함하는 예외 상태 개체를 만들기 위해 예외가 serialize될 때 발생합니다. (다음에서 상속됨 Exception) |
적용 대상
추가 정보
.NET