Почему CLion не показывает исключения? - PullRequest
1 голос
/ 29 мая 2020

Кажется, что CLion не показывает мне никаких исключений при запуске моего кода. Чтобы проверить это, я создал новый проект только со следующим кодом:

#include <iostream>

int main() {
    std::cout << "--- One" << std::endl;
    throw 6;
    std::cout << "--- Two" << std::endl;
    return 0;
}

, что приводит к следующему результату:

C:\Users\david\CLionProjects\untitled\cmake-build-debug\untitled.exe
--- One

Process finished with exit code 0

Как видите, код перед исключение выполняется, а следующий за ним код не выполняется (как и следовало ожидать). Но вместо сообщения об исключении он говорит: «Процесс завершен с кодом выхода 0», как если бы исключение не произошло.

Тот же код, скомпилированный и выполненный в Ubuntu (через терминал), отображал сообщение об ошибке. Итак, я предполагаю, что проблема связана с CLion.

Как я могу решить эту проблему, чтобы я мог видеть сообщения об исключениях в моем коде?

Есть ли любой параметр, который может привести к такому поведению?

Я использую CLion на Windows 10 с Cygwin. Вот скриншот проблемы:

Here's a screenshot of the problem

1 Ответ

0 голосов
/ 29 мая 2020

Throw требует также try and catch

From: http://www.cplusplus.com/doc/tutorial/exceptions/

// exceptions
#include <iostream>
using namespace std;

int main () {
  try
  {
    throw 20;
  }
  catch (int e)
  {
    cout << "An exception occurred. Exception Nr. " << e << '\n';
  }
  return 0;
}

, скомпилированный и работающий под управлением cygwin, показывает:

$ g++ prova1.cc -o prova1

$ ./prova1
An exception occurred. Exception Nr. 2
...