Properly throw exceptions in taps