powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Почему не работает исключения TRY
6 сообщений из 6, страница 1 из 1
Почему не работает исключения TRY
    #38217055
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
emun _ex 
{
   a,b,c
};

void main(
{
      try
     {
         if(...) throw a;
         if(...) throw b;
     }

      catch(_ex a)
     {
     }

     catch(_ex b)
     {
     }

}



как это исправить ?
...
Рейтинг: 0 / 0
Почему не работает исключения TRY
    #38217182
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323,

Что именно "не работает" и как, по Вашему мнению , оно должно работать?
...
Рейтинг: 0 / 0
Почему не работает исключения TRY
    #38217186
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323, тут непонятненько. Нет юзкейса.
...
Рейтинг: 0 / 0
Почему не работает исключения TRY
    #38217209
enum _e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gera3323
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
enum _ex 
{
   a,b,c
};

int main(...)
{
      try
     {
         if(0) throw a;
         if(1) throw b;
     }

      catch(_ex a)
     {
     }

     catch(_ex b)
     {
     }

     return 0;
}



как это исправить ?
...
Рейтинг: 0 / 0
Почему не работает исключения TRY
    #38217332
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Должно быть:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
emun _ex 
{
   a,b,c
};

void main(
{
      try
     {
         if(...) throw a;
         if(...) throw b;
     }

      catch(_ex x) // а ещё лучше catch(_ex &x)
     {
        if( x == a ) /*...*/;
        if( x == b ) /*...*/;
     }
}



Ловится всегда ТИП исключения, а не его ЗНАЧЕНИЕ.
...
Рейтинг: 0 / 0
Почему не работает исключения TRY
    #38217338
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имей в виду также, что

catch(_ex x)
catch(_ex &x)
catch(int x)
catch(int &x)

в твоём случае будет одно и то же, поскольку _ex и int -- это ОДИН ТИП ДАННЫХ (enum -- это синоним типа int).
Чтобы enum и int были бы разными типами, нужно использовать enum class и новый стандарт С++.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Почему не работает исключения TRY
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]