Interview › Scripting (Bash, Groovy)
How do you handle errors and provide a useful message on failure? [Intermediate]
Answer
For useful error handling, I fail fast, print clear messages to stderr, include context, preserve exit codes where needed, and validate inputs before doing destructive actions. I often use a die function and explicit checks around critical commands.
Technical explanation
Good errors say what failed, which input was involved, and what the operator can check next.
Logs and errors should go to stderr so stdout remains parseable for callers.
For scripts used in CI, failing with a nonzero code is as important as printing the message.
Hands-on example
die() { echo "ERROR: $*" >&2; exit 1; }
: "${ENVIRONMENT:?ENVIRONMENT is required}"
[[ "$ENVIRONMENT" =~ ^(dev|stage|prod)$ ]] || die "invalid env: $ENVIRONMENT"
kubectl config current-context >/dev/null || die "kubectl is not configured
Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.
More Scripting (Bash, Groovy) interview questions
- What is the purpose of the shebang line, and what does #!/bin/bash do? [Basic]
- What is the difference between sh and bash? [Basic]
- How do you make a script executable and run it? [Basic]
- What is the difference between running a script with ./script.sh, bash script.sh, and source script.sh? [Basic]
- What does sourcing a script do differently from executing it? [Basic]
- How do you declare a variable in Bash, and why are spaces around = not allowed? [Basic]
- What is the difference between $var and ${var}? [Basic]
- What is the difference between single quotes and double quotes in Bash? [Basic]