다음을 통해 공유


ConcurrentModificationException 클래스

정의

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

[Android.Runtime.Register("java/util/ConcurrentModificationException", DoNotGenerateAcw=true)]
public class ConcurrentModificationException : Java.Lang.RuntimeException
[<Android.Runtime.Register("java/util/ConcurrentModificationException", DoNotGenerateAcw=true)>]
type ConcurrentModificationException = class
    inherit RuntimeException
상속
ConcurrentModificationException
파생
특성

설명

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

예를 들어 일반적으로 한 스레드가 컬렉션을 수정하는 것은 허용되지 않으며 다른 스레드는 컬렉션을 반복합니다. 일반적으로 이러한 상황에서는 반복 결과가 정의되지 않습니다. 일부 반복기 구현(JRE에서 제공하는 모든 범용 컬렉션 구현 포함)은 이 동작이 감지되면 이 예외를 throw하도록 선택할 수 있습니다. 이 작업을 수행하는 반복기를 장애 조치(fail-fast) 반복기라고 합니다. 즉, 나중에 결정되지 않은 시간에 임의적이고 비결정적인 동작을 위험에 빠뜨리는 대신 빠르고 깔끔하게 실패합니다.

이 예외가 항상 개체가 다른 스레드에 의해 동시에 수정되었음을 나타내는 것은 아닙니다. 단일 스레드가 개체의 계약을 위반하는 메서드 호출 시퀀스를 발급하는 경우 개체에서 이 예외를 throw할 수 있습니다. 예를 들어 스레드가 장애 조치(fail-fast) 반복기를 사용하여 컬렉션을 반복하는 동안 컬렉션을 직접 수정하면 반복기가 이 예외를 throw합니다.

일반적으로 비동기화되지 않은 동시 수정이 있을 경우 하드 보장을 수행할 수 없으므로 장애 조치(fail-fast) 동작을 보장할 수 없습니다. 장애 조치(fail-fast) 작업은 최상의 노력으로 throw ConcurrentModificationException 됩니다. 따라서 이 예외의 정확성 ConcurrentModificationException 에 따라 달라지는 프로그램을 작성하는 것은 잘못된 것입니다. 버그를 검색하는 데만 사용해야 합니다.

1.2에 추가되었습니다.

에 대한 java.util.ConcurrentModificationExceptionJava 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

생성자

ConcurrentModificationException()

세부 메시지 없이 ConcurrentModificationException을 생성합니다.

ConcurrentModificationException(IntPtr, JniHandleOwnership)

JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

ConcurrentModificationException(String)

지정된 세부 정보 메시지를 사용하여 a ConcurrentModificationException 를 생성합니다.

ConcurrentModificationException(String, Throwable)

지정된 세부 정보 메시지 및 원인으로 새 예외를 생성합니다.

ConcurrentModificationException(Throwable)

지정된 원인 및 세부 메시지(일반적으로 클래스 및 세부 메시지 (cause==null ? null : cause.toString())cause포함)를 사용하여 새 예외를 생성합니다.

필드

is_generated

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)

속성

Cause

이 throw 가능한 원인을 반환하거나 null 원인이 존재하지 않거나 알 수 없는 경우 반환합니다.

(다음에서 상속됨 Throwable)
Class

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)
Handle

기본 Android 인스턴스에 대한 핸들입니다.

(다음에서 상속됨 Throwable)
JniIdentityHashCode

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)
JniPeerMembers

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

LocalizedMessage

이 throw 가능 개체에 대한 지역화된 설명을 만듭니다.

(다음에서 상속됨 Throwable)
Message

이 throw 가능 항목의 세부 정보 메시지 문자열을 반환합니다.

(다음에서 상속됨 Throwable)
PeerReference

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)
StackTrace

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

메서드

AddSuppressed(Throwable)

이 예외를 전달하기 위해 표시하지 않은 예외에 지정된 예외를 추가합니다.

(다음에서 상속됨 Throwable)
Dispose()

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)
Dispose(Boolean)

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)
FillInStackTrace()

실행 스택 추적을 채웁니다.

(다음에서 상속됨 Throwable)
GetStackTrace()

로 인쇄된 #printStackTrace()스택 추적 정보에 프로그래밍 방식으로 액세스할 수 있도록 합니다.

(다음에서 상속됨 Throwable)
GetSuppressed()

이 예외를 전달하기 위해 일반적으로 -with-resources 문에 의해 try표시되지 않은 모든 예외가 포함된 배열을 반환합니다.

(다음에서 상속됨 Throwable)
InitCause(Throwable)

이 throw 가능 개체의 원인을 지정된 값으로 초기화합니다.

(다음에서 상속됨 Throwable)
PrintStackTrace()

이 throw 가능 및 해당 역추적을 표준 오류 스트림에 인쇄합니다.

(다음에서 상속됨 Throwable)
PrintStackTrace(PrintStream)

이 throw 가능 및 해당 역추적을 지정된 인쇄 스트림에 인쇄합니다.

(다음에서 상속됨 Throwable)
PrintStackTrace(PrintWriter)

이 throw 가능 및 해당 역추적을 지정된 인쇄 기록기에 인쇄합니다.

(다음에서 상속됨 Throwable)
SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Throwable)
SetStackTrace(StackTraceElement[])

및 관련 메서드에 의해 #getStackTrace() 반환되고 인쇄 #printStackTrace() 될 스택 추적 요소를 설정합니다.

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

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)
UnregisterFromRuntime()

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)

명시적 인터페이스 구현

IJavaPeerable.Disposed()

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)
IJavaPeerable.DisposeUnlessReferenced()

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)
IJavaPeerable.Finalized()

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)
IJavaPeerable.JniManagedPeerState

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)
IJavaPeerable.SetJniIdentityHashCode(Int32)

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)
IJavaPeerable.SetPeerReference(JniObjectReference)

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

(다음에서 상속됨 Throwable)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

GetJniTypeName(IJavaPeerable)

이러한 수정이 허용되지 않는 경우 개체의 동시 수정을 감지한 메서드에서 이 예외를 throw할 수 있습니다.

적용 대상