# PlayerPrefsException

> Exceptions thrown by PlayerPrefs when it can't store a preference value.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine](/engine/7000.0/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule
* **Inherits from:** [Exception](https://learn.microsoft.com/dotnet/api/system.exception)
* **Implements:** [ISerializable](https://learn.microsoft.com/dotnet/api/system.runtime.serialization.iserializable)

```csharp
public class PlayerPrefsException : Exception, ISerializable
```

## Remarks

[PlayerPrefs.SetInt](/engine/7000.0/script-reference/unityengine/playerprefs/setint.md), [PlayerPrefs.SetFloat](/engine/7000.0/script-reference/unityengine/playerprefs/setfloat.md), and [PlayerPrefs.SetString](/engine/7000.0/script-reference/unityengine/playerprefs/setstring.md) throw this exception if Unity can't write a value to the platform's preference storage.

The reason for the failure depends on the platform. For example, on Windows Unity stores preferences in the registry. A write fails if Unity can't create or open the application's registry key, or if the registry rejects the value. Unity throws this exception in the Editor and Player builds, so catch it when your script writes preferences.

Additional Resources: [PlayerPrefs](/engine/7000.0/script-reference/unityengine/playerprefs.md), [PlayerPrefs.Save](/engine/7000.0/script-reference/unityengine/playerprefs/save.md), [PlayerPrefs.DeleteAll](/engine/7000.0/script-reference/unityengine/playerprefs/deleteall.md).

## Examples

```csharp
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    void Start()
    {
        // create a one megabyte character string
        string s16 = "0123456789abcdef";
        string s1024 = "";
        for (int j = 0; j < 64; j++)
            s1024 += s16;
        string s1024x1024 = "";
        for (int i  = 0; i < 1024; i++)
            s1024x1024 += s1024;

        // try to save the string
        try
        {
            PlayerPrefs.SetString("fail", s1024x1024);
        }
        // handle the error
        catch (System.Exception err)
        {
            Debug.Log("Got: " + err);
        }
    }
}
```

## Inheritance

**Inherited Members:**

* [Exception.GetBaseException()](https://learn.microsoft.com/dotnet/api/system.exception.getbaseexception)
* [Exception.GetObjectData(SerializationInfo, StreamingContext)](https://learn.microsoft.com/dotnet/api/system.exception.getobjectdata)
* [Exception.ToString()](https://learn.microsoft.com/dotnet/api/system.exception.tostring)
* [Exception.GetType()](https://learn.microsoft.com/dotnet/api/system.exception.gettype)
* [Exception.TargetSite()](https://learn.microsoft.com/dotnet/api/system.exception.targetsite)
* [Exception.Message()](https://learn.microsoft.com/dotnet/api/system.exception.message)
* [Exception.Data()](https://learn.microsoft.com/dotnet/api/system.exception.data)
* [Exception.InnerException()](https://learn.microsoft.com/dotnet/api/system.exception.innerexception)
* [Exception.HelpLink()](https://learn.microsoft.com/dotnet/api/system.exception.helplink)
* [Exception.Source()](https://learn.microsoft.com/dotnet/api/system.exception.source)
* [Exception.HResult()](https://learn.microsoft.com/dotnet/api/system.exception.hresult)
* [Exception.StackTrace()](https://learn.microsoft.com/dotnet/api/system.exception.stacktrace)
* [Exception.SerializeObjectState()](https://learn.microsoft.com/dotnet/api/system.exception.serializeobjectstate)
