# StorageFaultGrain Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.testinghost/orleans.testinghost.storagefaultgrain/)

## AddFaultOnClear(GrainId, Exception) {#addfaultonclear-orleans-runtime-grainid-system-exception-52e8aaab}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.testinghost/orleans.testinghost.storagefaultgrain/methods/addfaultonclear-orleans-runtime-grainid-system-exception-52e8aaab/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.TestingHost/TestStorageProviders/StorageFaultGrain.cs#L53-L55)

```csharp
public Task AddFaultOnClear(GrainId grainId, Exception exception)
```

Adds a storage exception to be thrown when the referenced grain clears state in a storage provider

### Parameters

- `grainId` (`GrainId`)
- `exception` (`Exception`)

### Returns

Task.

## AddFaultOnRead(GrainId, Exception) {#addfaultonread-orleans-runtime-grainid-system-exception-538c6160}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.testinghost/orleans.testinghost.storagefaultgrain/methods/addfaultonread-orleans-runtime-grainid-system-exception-538c6160/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.TestingHost/TestStorageProviders/StorageFaultGrain.cs#L37-L39)

```csharp
public Task AddFaultOnRead(GrainId grainId, Exception exception)
```

Adds a storage exception to be thrown when the referenced grain reads state from a storage provider

### Parameters

- `grainId` (`GrainId`)
- `exception` (`Exception`)

### Returns

Task.

## AddFaultOnWrite(GrainId, Exception) {#addfaultonwrite-orleans-runtime-grainid-system-exception-b34080cd}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.testinghost/orleans.testinghost.storagefaultgrain/methods/addfaultonwrite-orleans-runtime-grainid-system-exception-b34080cd/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.TestingHost/TestStorageProviders/StorageFaultGrain.cs#L45-L47)

```csharp
public Task AddFaultOnWrite(GrainId grainId, Exception exception)
```

Adds a storage exception to be thrown when the referenced grain writes state to a storage provider

### Parameters

- `grainId` (`GrainId`)
- `exception` (`Exception`)

### Returns

Task.

## OnActivateAsync(CancellationToken) {#onactivateasync-system-threading-cancellationtoken-5862c8dc}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.testinghost/orleans.testinghost.storagefaultgrain/methods/onactivateasync-system-threading-cancellationtoken-5862c8dc/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.TestingHost/TestStorageProviders/StorageFaultGrain.cs#L26-L32)

```csharp
public override Task OnActivateAsync(CancellationToken cancellationToken)
```

This method is called at the end of the process of activating a grain. It is called before any messages have been dispatched to the grain. For grains with declared persistent state, this method is called after the State property has been populated.

### Parameters

- `cancellationToken` (`CancellationToken`): A cancellation token which signals when activation is being canceled.

## OnClear(GrainId) {#onclear-orleans-runtime-grainid-f04814f6}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.testinghost/orleans.testinghost.storagefaultgrain/methods/onclear-orleans-runtime-grainid-f04814f6/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.TestingHost/TestStorageProviders/StorageFaultGrain.cs#L81-L85)

```csharp
public Task OnClear(GrainId grainId)
```

Throws a storage exception if one has been added for the grain reference for clearing state.

### Parameters

- `grainId` (`GrainId`)

## OnRead(GrainId) {#onread-orleans-runtime-grainid-9da17de1}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.testinghost/orleans.testinghost.storagefaultgrain/methods/onread-orleans-runtime-grainid-9da17de1/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.TestingHost/TestStorageProviders/StorageFaultGrain.cs#L61-L65)

```csharp
public Task OnRead(GrainId grainId)
```

Throws a storage exception if one has been added for the grain reference for reading.

### Parameters

- `grainId` (`GrainId`)

## OnWrite(GrainId) {#onwrite-orleans-runtime-grainid-3b1f048c}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.testinghost/orleans.testinghost.storagefaultgrain/methods/onwrite-orleans-runtime-grainid-3b1f048c/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.TestingHost/TestStorageProviders/StorageFaultGrain.cs#L71-L75)

```csharp
public Task OnWrite(GrainId grainId)
```

Throws a storage exception if one has been added for the grain reference for writing.

### Parameters

- `grainId` (`GrainId`)
