module CLI::Kit
Constants
- Abort
- AbortSilent
- Bug
- BugSilent
- EXIT_BUG
- EXIT_FAILURE_BUT_NOT_BUG
- EXIT_SUCCESS
- GenericAbort
Abort
,Bug
,AbortSilent
, andBugSilent
are four ways of immediately bailing on command-line execution when an unrecoverable error occurs.Note that these don't inherit from StandardError, and so are not caught by a bare `rescue => e`.
-
Abort
prints its message in red and exits 1; -
Bug
additionally submits the exception to Bugsnag; -
AbortSilent
andBugSilent
do the same as above, but do not printmessages before exiting.
Treat these like panic() in Go:
* Don't rescue them. Use a different Exception class if you plan to recover; * Provide a useful message, since it will be presented in brief to the user, and will be useful for debugging. * Avoid using it if it does actually make sense to recover from an error.
Additionally:
* Do not subclass these. * Only use AbortSilent or BugSilent if you prefer to print a more contextualized error than Abort or Bug would present to the user. * In general, don't attach a message to AbortSilent or BugSilent. * Never raise GenericAbort directly. * Think carefully about whether Abort or Bug is more appropriate. Is this a bug in the tool? Or is it just user error, transient network failure, etc.? * One case where it's ok to rescue (cli-kit internals or tests aside): 1. rescue Abort or Bug 2. Print a contextualized error message 3. Re-raise AbortSilent or BugSilent respectively.
-
- VERSION