no-exception-message-variables

Forbid throwaway local variables used only as exception messages.

Message

Inline exception message strings instead of assigning throwaway variables.

Valid examples

msg = "invalid value"
logger.warning(msg)
raise ValueError(msg)
msg = "invalid value"
raise ValueError(f"{msg}: {value}")
raise ValueError("invalid value")
Show more
err = PermissionError("invalid value")
raise RuntimeError(err)
msg = "invalid value"
raise ValueError(msg) from msg

Invalid examples

message = build_message()
raise ValueError(message)

Suggested fix

raise ValueError(build_message())
msg = "invalid value"
raise ValueError(msg)

Suggested fix

raise ValueError("invalid value")
Show more
msg: str = "invalid value"
raise ValueError(msg)

Suggested fix

raise ValueError("invalid value")
msg = "invalid value"
# keep this comment attached to the raise
raise ValueError(msg)

Suggested fix

# keep this comment attached to the raise
raise ValueError("invalid value")
message = f"invalid value: {value}"
raise RuntimeError(message) from exc

Suggested fix

raise RuntimeError(f"invalid value: {value}") from exc
detail = "invalid value"
raise CustomError(code=code, detail=detail)

Suggested fix

raise CustomError(code=code, detail="invalid value")