title: std::logic_error instead of return false
body: <p>I am looking for someones opinion about the usage of <code>std::logic_error</code> instead of using a complicated list of nested if/elseif return true/false. </p>
  
  <p>I would like to move from a lot of similar function like the one below</p>
  
  <pre><code>bool validate_data(){
      std::vector&lt;int&gt; v; 
      //fill with data
      if( v.find(10) == v.end() ){
         return false;
      } 
      // other checks that return false
  }
  </code></pre>
  
  <p>to </p>
  
  <pre><code>bool validate_data(){
      std::vector&lt;int&gt; v; 
      //fill with data
      if( v.find(10) == v.end() ){
         throw std::logic_error("error message");
      } 
      // other checks that return false
  }
  </code></pre>
  
  <p>and call all this list of functions in a single <code>try-catch</code> block.</p>
  
  <p>Since it is a derived from <code>std::exception</code> probably I don't know if it is a good idea. </p>
  
  <p>Is anyone using like the example below?</p>
  
  <p>Thanks a lot</p>
  
  <p>AFG</p>