# CheckExistsAndThrow(in AtomicSafetyHandle)

> Check if an AtomicSafetyHandle is valid.

## Definition

* **Type:** Method
* **Namespace:** [Unity.Collections.LowLevel.Unsafe](/engine/6000.0/script-reference/unity/collections/lowlevel/unsafe.md)
* **Assembly:** UnityEngine.CoreModule

## CheckExistsAndThrow(AtomicSafetyHandle)

```csharp
[Conditional("ENABLE_UNITY_COLLECTIONS_CHECKS")]
public static void CheckExistsAndThrow(in AtomicSafetyHandle handle)
```

### Parameters

**** (\[AtomicSafetyHandle]\(/engine/6000.0/script-reference/unity/collections/lowlevel/unsafe/atomicsafetyhandle)): The AtomicSafetyHandle to check.

### Remarks

Throws an exception if the AtomicSafetyHandle is already destroyed.

An `AtomicSafetyHandle` is invalid under the following conditions:

* The version number it stores no longer matches the version number of the associated entry in the safety system.
* [AtomicSafetyHandle.Release](/engine/6000.0/script-reference/unity/collections/lowlevel/unsafe/atomicsafetyhandle/release.md) is called on the `AtomicSafetyHandle`, or on another `AtomicSafetyHandle` that references the same memory region.
* The secondary version number it stores no longer matches the secondary version number of the associated entry in the safety system. This situation happens when [AtomicSafetyHandle.CheckWriteAndBumpSecondaryVersion](/engine/6000.0/script-reference/unity/collections/lowlevel/unsafe/atomicsafetyhandle/checkwriteandbumpsecondaryversion.md) or SetBumpSecondaryVersionOnSchedule are called on the `AtomicSafetyHandle`.

For more information about container version numbers, refer to [Copying NativeContainer structures](/engine/6000.0/manual/scripting/programming-distribute-work-threads/job-system/thread-safe-types/copy-nativecontainer.md).

CheckExistsAndThrow is identical in behavior to [AtomicSafetyHandle.IsHandleValid](/engine/6000.0/script-reference/unity/collections/lowlevel/unsafe/atomicsafetyhandle/ishandlevalid.md), except that it throws an exception when the handle isn't valid, rather than returning `false`.

Additional Resources: [AtomicSafetyHandle.IsHandleValid](/engine/6000.0/script-reference/unity/collections/lowlevel/unsafe/atomicsafetyhandle/ishandlevalid.md)
