When I inlude <stdexception> header, does that header include <exception> header as well?
I know all standard exceptions inherit from Exception class but why that header is sepereate then?
anyway if we don't inlucde neather of them, how exception handling system does handle those exception then, it looks to that those headers are included in all other std headers, isn'it?
The header is called <stdexcept>. To inherit from std::exception they need to have the declaration of std::exception available so it doesn't make much sense not to include <exception> in <stdexcept>. I can't find anything in the standard that say <stdexcept> must include <exception> so I guess it doesn't have to do that but on most implementations it's probably included.
There's a lot more than just the definition of std::exception in the header <exception>. It's plausible that some implementation's <stdexcept> includes a small internal header that defines std::exception, but does not include the header <exception>.