title: Why are C++ STL iostreams not "exception friendly"?
body: <p>I'm used to the Delphi VCL Framework, where TStreams throw exceptions on errors (e.g file not found, disk full). I'm porting some code to use C++ STL instead, and have been caught out by iostreams NOT throwing exceptions by default, but setting <a href="http://en.cppreference.com/w/cpp/io/ios_base/iostate" rel="noreferrer">badbit/failbit flags</a> instead.</p>
  
  <p>Two questions...</p>
  
  <p>a: Why is this - It seems an odd design decision for a language built with exceptions in it from day one?</p>
  
  <p>b: How best to avoid this? I could produce shim classes that throw as I would expect, but this feels like reinventing the wheel. Maybe there's a BOOST library that does this in a saner fashion?</p>