thrown in one file can always be caught by a suitable handler in
  another file, even if the two files are compiled with different ABIs.
</p><p> One exception type does change when using the new ABI, namely
  <code class="classname">std::ios_base::failure</code>.
  This is necessary because the 2011 standard changed its base class from
  <code class="classname">std::exception</code> to
  <code class="classname">std::system_error</code>, which causes its layout to change.
  Exceptions due to iostream errors 