ArgumentException 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
메서드에 제공된 인수 중 하나가 유효하지 않을 때 throw되는 예외입니다.
public ref class ArgumentException : Exception
public ref class ArgumentException : SystemException
public class ArgumentException : Exception
public class ArgumentException : SystemException
[System.Serializable]
public class ArgumentException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArgumentException : SystemException
type ArgumentException = class
inherit Exception
type ArgumentException = class
inherit SystemException
type ArgumentException = class
inherit SystemException
interface ISerializable
[<System.Serializable>]
type ArgumentException = class
inherit SystemException
interface ISerializable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArgumentException = class
inherit SystemException
interface ISerializable
Public Class ArgumentException
Inherits Exception
Public Class ArgumentException
Inherits SystemException
- 상속
- 상속
- 파생
- 특성
- 구현
예제
다음 예제에서는 throw 하 고 catch 하는 방법을 보여 줍니다.ArgumentException ArgumentException.GetType()을 사용합니다. Name 속성은 예외 개체의 이름을 표시하고 속성을 사용하여 Message 예외 메시지의 텍스트를 표시합니다.
using namespace System;
static int DivideByTwo(int num)
{
// If num is an odd number, throw an ArgumentException.
if ((num & 1) == 1)
throw gcnew ArgumentException(String::Format("{0} is not an even number", num),
"num");
// num is even, return half of its value.
return num / 2;
}
void main()
{
// Define some integers for a division operation.
array<int>^ values = { 10, 7 };
for each (int value in values) {
try {
Console::WriteLine("{0} divided by 2 is {1}", value, DivideByTwo(value));
}
catch (ArgumentException^ e) {
Console::WriteLine("{0}: {1}", e->GetType()->Name, e->Message);
}
Console::WriteLine();
}
}
// This example displays the following output:
// 10 divided by 2 is 5
//
// ArgumentException: 7 is not an even number
// Parameter name: num
using System;
public class Example
{
static void Main()
{
// Define some integers for a division operation.
int[] values = { 10, 7 };
foreach (var value in values) {
try {
Console.WriteLine("{0} divided by 2 is {1}", value, DivideByTwo(value));
}
catch (ArgumentException e) {
Console.WriteLine("{0}: {1}", e.GetType().Name, e.Message);
}
Console.WriteLine();
}
}
static int DivideByTwo(int num)
{
// If num is an odd number, throw an ArgumentException.
if ((num & 1) == 1)
throw new ArgumentException(String.Format("{0} is not an even number", num),
"num");
// num is even, return half of its value.
return num / 2;
}
}
// This example displays the following output:
// 10 divided by 2 is 5
//
// ArgumentException: 7 is not an even number
// Parameter name: num
open System
let divideByTwo num =
// If num is an odd number, throw an ArgumentException.
if num % 2 = 1 then
invalidArg "num" $"{num} is not an even number"
// num is even, return half of its value.
num / 2;
// Define some integers for a division operation.
let values = [ 10; 7 ]
for value in values do
try
printfn $"{value} divided by 2 is {divideByTwo value}"
with
| :? ArgumentException as e ->
printfn $"{e.GetType().Name}: {e.Message}"
printfn ""
// This example displays the following output:
// 10 divided by 2 is 5
//
// ArgumentException: 7 is not an even number (Parameter 'num')
Public Class Example
Public Shared Sub Main()
' Define some integers for a division operation.
Dim values() As Integer = { 10, 7 }
For Each value In values
Try
Console.WriteLine("{0} divided by 2 is {1}", value, DivideByTwo(value))
Catch e As ArgumentException
Console.WriteLine("{0}: {1}", e.GetType().Name, e.Message)
End Try
Console.WriteLine()
Next
End Sub
Private Shared Function DivideByTwo(ByVal num As Integer) As Integer
' If num is an odd number, throw an ArgumentException.
If (num And 1) = 1 Then
Throw New ArgumentException(String.Format("{0} is not an even number", num),
"num")
End If
Return num \ 2
End Function
End Class
' The example displays the following output:
' 10 divided by 2 is 5
'
' ArgumentException: 7 is not an even number
' Parameter name: num
설명
ArgumentException 는 메서드가 호출되고 전달된 인수 중 하나 이상이 호출된 메서드의 매개 변수 사양을 충족하지 않을 때 throw됩니다. 속성은 ParamName 잘못된 인수를 식별합니다.
가장 일반적으로 ArgumentException 는 공용 언어 런타임 또는 다른 클래스 라이브러리에 의해 throw되며 개발자 오류를 나타냅니다. 코드에서 를 ArgumentException throw하는 경우 예외의 Message 속성에 잘못된 인수와 인수에 대해 예상되는 값 범위를 설명하는 의미 있는 오류 메시지가 포함되어 있는지 확인해야 합니다.
의 기본 파생 클래스는 ArgumentException 및 ArgumentOutOfRangeException입니다ArgumentNullException. 파생 클래스 중 어느 것도 허용되지 않는 경우를 제외하고 이러한 파생 클래스를 대신 사용해야 ArgumentException합니다. 예를 들어 예외는 다음을 통해 throw되어야 합니다.
ArgumentNullException 가 유효한 인수로 수락하지 않는 메서드에 전달될 때마다
null
입니다.ArgumentOutOfRangeException 인수의 값이 허용되는 값 범위를 벗어나면 이고, 예를 들어 를 만드는 동안 값 "46"이 month 인수로 전달되는 경우입니다 DateTime.
메서드 호출에 인수가 없거나 오류가 인수 자체를 InvalidOperationException 포함하지 않는 경우 를 사용해야 합니다.
ArgumentException 는 값이 0x80070057 HRESULT COR_E_ARGUMENT 사용합니다.
인스턴스의 초기 속성 값의 목록을 ArgumentException, 참조는 ArgumentException 생성자입니다.
F#에서 invalidArg 함수를 사용하여 ArgumentException을 생성하고 발생할 수 있습니다.
생성자
ArgumentException() |
ArgumentException 클래스의 새 인스턴스를 초기화합니다. |
ArgumentException(SerializationInfo, StreamingContext) |
사용되지 않음.
serialize된 데이터를 사용하여 ArgumentException 클래스의 새 인스턴스를 초기화합니다. |
ArgumentException(String) |
지정된 오류 메시지를 사용하여 ArgumentException 클래스의 새 인스턴스를 초기화합니다. |
ArgumentException(String, Exception) |
지정된 오류 메시지와 해당 예외의 원인인 내부 예외에 대한 참조를 사용하여 ArgumentException 클래스의 새 인스턴스를 초기화합니다. |
ArgumentException(String, String) |
지정된 오류 메시지와 이 예외를 발생한 매개 변수의 이름을 사용하여 ArgumentException 클래스의 새 인스턴스를 초기화합니다. |
ArgumentException(String, String, Exception) |
지정된 오류 메시지, 매개 변수 이름 및 이 예외의 원인인 내부 예외에 대한 참조를 사용하여 ArgumentException 클래스의 새 인스턴스를 초기화합니다. |
속성
Data |
예외에 대한 사용자 정의 정보를 추가로 제공하는 키/값 쌍 컬렉션을 가져옵니다. (다음에서 상속됨 Exception) |
HelpLink |
이 예외와 연결된 도움말 파일에 대한 링크를 가져오거나 설정합니다. (다음에서 상속됨 Exception) |
HResult |
특정 예외에 할당된 코드화된 숫자 값인 HRESULT를 가져오거나 설정합니다. (다음에서 상속됨 Exception) |
InnerException |
현재 예외를 발생시킨 Exception 인스턴스를 가져옵니다. (다음에서 상속됨 Exception) |
Message |
오류 메시지 및 매개 변수 이름을 가져오거나, 매개 변수 이름이 설정되지 않은 경우에는 오류 메시지만 가져옵니다. |
ParamName |
이 예외를 발생시킨 매개 변수의 이름을 가져옵니다. |
Source |
오류를 발생시키는 애플리케이션 또는 개체의 이름을 가져오거나 설정합니다. (다음에서 상속됨 Exception) |
StackTrace |
호출 스택의 직접 실행 프레임 문자열 표현을 가져옵니다. (다음에서 상속됨 Exception) |
TargetSite |
현재 예외를 throw하는 메서드를 가져옵니다. (다음에서 상속됨 Exception) |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetBaseException() |
파생 클래스에서 재정의된 경우 하나 이상의 후속 예외의 근본 원인이 되는 Exception 을 반환합니다. (다음에서 상속됨 Exception) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetObjectData(SerializationInfo, StreamingContext) |
사용되지 않음.
매개 변수 이름 및 추가 예외 정보를 사용하여 SerializationInfo 개체를 설정합니다. |
GetObjectData(SerializationInfo, StreamingContext) |
사용되지 않음.
파생 클래스에서 재정의된 경우 예외에 관한 정보를 SerializationInfo 에 설정합니다. (다음에서 상속됨 Exception) |
GetType() |
현재 인스턴스의 런타임 형식을 가져옵니다. (다음에서 상속됨 Exception) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ThrowIfNullOrEmpty(String, String) |
가 이거나 비어 있는 경우 |
ThrowIfNullOrWhiteSpace(String, String) |
가 |
ToString() |
현재 예외에 대한 문자열 표현을 만들고 반환합니다. (다음에서 상속됨 Exception) |
이벤트
SerializeObjectState |
사용되지 않음.
예외에 대한 serialize된 데이터가 들어 있는 예외 상태 개체가 만들어지도록 예외가 serialize될 때 발생합니다. (다음에서 상속됨 Exception) |
적용 대상
추가 정보
.NET