exception.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include "exception.h"
  2. namespace NYT {
  3. ////////////////////////////////////////////////////////////////////////////////
  4. TSimpleException::TSimpleException(TString message)
  5. : Message_(std::move(message))
  6. { }
  7. const TString& TSimpleException::GetMessage() const
  8. {
  9. return Message_;
  10. }
  11. const char* TSimpleException::what() const noexcept
  12. {
  13. return Message_.c_str();
  14. }
  15. ////////////////////////////////////////////////////////////////////////////////
  16. TCompositeException::TCompositeException(TString message)
  17. : TSimpleException(std::move(message))
  18. , What_(Message_)
  19. { }
  20. TCompositeException::TCompositeException(
  21. const std::exception& exception,
  22. TString message)
  23. : TSimpleException(message)
  24. , InnerException_(std::current_exception())
  25. , What_(message + "\n" + exception.what())
  26. { }
  27. const std::exception_ptr& TCompositeException::GetInnerException() const
  28. {
  29. return InnerException_;
  30. }
  31. const char* TCompositeException::what() const noexcept
  32. {
  33. return What_.c_str();
  34. }
  35. ////////////////////////////////////////////////////////////////////////////////
  36. } // namespace NYT