fork download
  1. #include <iostream>
  2. #include <stdexcept>
  3. using namespace std;
  4.  
  5. class CustomException : public exception
  6. {
  7. string Reason;
  8. public:
  9. CustomException(const char* why) : Reason(why) {}
  10.  
  11. virtual const char* what() const
  12. {
  13. return Reason.c_str();
  14. }
  15. };
  16.  
  17. int main() {
  18. return 0;
  19. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:11:22: error: looser throw specifier for ‘virtual const char* CustomException::what() const’
  virtual const char* what() const
                      ^~~~
In file included from /usr/include/c++/6/ios:39:0,
                 from /usr/include/c++/6/ostream:38,
                 from /usr/include/c++/6/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/6/exception:71:5: error:   overriding ‘virtual const char* std::exception::what() const noexcept’
     what() const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_USE_NOEXCEPT;
     ^~~~
stdout
Standard output is empty