exception.h 587 B

1234567891011121314151617181920212223
  1. #pragma once
  2. #include <stdexcept>
  3. namespace program {
  4. class ProgramArgumentsError : public std::logic_error {
  5. using std::logic_error::logic_error;
  6. };
  7. class ArgumentStructureError : public ProgramArgumentsError {
  8. public:
  9. ArgumentStructureError(std::string const & desc, std::string const & name)
  10. : ProgramArgumentsError(desc + " for argument " + name) {}
  11. };
  12. class IllegalPositionError : public ProgramArgumentsError {
  13. public:
  14. IllegalPositionError(std::string const & desc, size_t index)
  15. : ProgramArgumentsError(desc + " at index " + std::to_string(index)) {}
  16. };
  17. }