title: Is there any advantages to throw other thing that a std::exception( or derivatives types)
body: <p>Is there any advantages or uses cases to throw other thing that a std::exception( or a derivatives types).</p>
  
  <p>For example <code>throw 1;</code> or <code>throw "error";</code></p>
  
  <p>In other terms why the c++ standard allow it.</p>