Agreed on this statement. 

The `catch` could still result in an exception being thrown and `unsubscribe` having happened because it is a race. So we likely need a check inside the catch as well.