Я бачив щонайменше одне надійне джерело (клас C ++, який я взяв), рекомендую, щоб специфічні для програми класи винятків у C ++ були успадковані від std::exception. Мені не зрозуміло переваги такого підходу.
У C # причини успадкування з ApplicationExceptionних ясні: ви отримуєте кілька корисних методів, властивостей та конструкторів і просто повинні додати або переотримати те, що вам потрібно. З std::exceptionцим , здається , що все , що ви отримаєте це what()метод , щоб перевизначити, який ви могли б точно так же створювати самостійно.
Тож які переваги можна використовувати std::exceptionв якості базового класу для мого додаткового класу виключень? Чи є вагомі причини, щоб не успадкувати std::exception?