title: What is the difference between declaring function as __attribute__(nothrow) and `throw()`
body: <p>What is the difference between declaring function as <code>__attribute__(nothrow)</code> and <code>throw()</code> when using C++ compiler with support of gnu extensions (e.g. g++ itself on Linux; C++03).</p>
  
  <p>As I understand, both variants are to say compiler that this function will not throw exceptions. But implementations may be different</p>
  
  <p>How will compiler use this information?</p>
  
  <p>What if I will throw exception while running inside the nothrow or <code>throw()</code> function and this exception will go up to the function? Will function pass exception further or it will hide exception or something else?</p>