sonar design for error-handling