added onErrorThrow(String)