Стек exception'ов, как обработать все?

145
24 января 2020, 00:40

Вопрос на засыпку, кто знает, можно ли перехватить MyException1 в func3?

#include <iostream>
class MyException1: public std::exception {
public:
    virtual const char* what() const throw()
    {
        return "Error1";
    }
};
class MyException21: public std::exception {
public:
    virtual const char* what() const throw()
    {
        return "Error21";
    }
};
class MyException22: public std::exception {
public:
    virtual const char* what() const throw()
    {
        return "Error22";
    }
};
void func1(){
    throw MyException1();
}
void func2(){
    throw MyException1();
}
void func12(){
    try {
        func1();
    }catch (MyException1& exception1){
        throw MyException21();
    }
}
void func22(){
    try {
        func2();
    }catch (MyException1& exception1){
        throw MyException22();
    }
}
void func3(){
    try {
        func12();
        func22();
    }catch (MyException1& exception1){
        std::cout<<exception1.what(); // Вот здесь должно выводиться "Error1"
    }catch (MyException21& exception21){
        std::cout<<exception21.what(); // Но выводится "Error21", что логично, но как вот весь стек ошибок перехватить, т.е. MyException1 тоже?
    }
}
int main() {
    func3();
    return 0;
}
Answer 1

У вас нет никакого стека исключений. Функция func12(); ловит MyException1 и кидает вместо него MyException21.

Answer 2

можно ли перехватить MyException1 в func3?

Нет. Клади его (или информацию из него) внутрь MyException21, если надо.

READ ALSO
Не полчается пройти авторизацию через Jsoup

Не полчается пройти авторизацию через Jsoup

Не могу авторизоваться с помощью Jsoup для дальнейшего парсингаВ чем проблема можете подсказать? Ниже предоставлен код и HTTP запрос

112
Чтение переписки через JavaMail API

Чтение переписки через JavaMail API

Всем привет!) Хотел бы узнать можно ли через JavaMail API каким то образом сделать выборку сообщений в почте например с каким то пользователем,...

130
Можно ли передавать параметры url при методе POST?

Можно ли передавать параметры url при методе POST?

Есть набор рест-сервисов, с реализованными методами GET\POST на spring

142
Проблема с .jar &ldquo;No main manifest attribute&rdquo;

Проблема с .jar “No main manifest attribute”

Ситуация такая: Есть maven проект, в нем несколько модулей (так нужно), есть класс с методом main(), в котором вызываются определенные методы, но это...

135