I've got code that calls ::fgetpos, which results in a kernel exception that can't be caught (I have option /ehs in my VS 2008 project). But I can't help think that standard library routines should never throw these kinds of exceptions.
update: I've tried calling ::fgetpos(0, &foo), which is clearly wrong, and I indeed received a kernel-level exception. I'm baffled. Why would the C++ standard library not perform the most basic of argument checks (check for null-pointer) and raise a std::invalid_argument?
Do any standard library routines perform such basic checks, or do they all happily cause program termination?