Maybe this would clearer... as I understand, we still have to prevent `OnSpecimenCreated` from being fired when a specimen was _not_ created, right?

```csharp
bool specimenWasCreated = false;
object specimen = null;
try
{
    specimen = this.builder.Create(request, context);
    specimenWasCreated = true;
    return specimen;
}
finally
{
    if (isFilterSatisfied)
    {
        if (specimenWasCreated)
        {
            this.OnSpecimenCreated(new SpecimenCreatedEventArgs(request, specimen, this.depth));
        }
        this.depth--;
    }
}
```