Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > C/C++: Общие вопросы > try catch выдаёт ошибку с Exception |
Автор: Katerina1993 30.12.18, 07:42 |
Пытаюсь использовать try catch, но мне выдаёт ошибку Цитата error C3699: &: это косвенное обращение невозможно использовать для типа "System::Exception" <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> private: System::Void board_CellValueChanged(System::Object^ sender, System::Windows::Forms::DataGridViewCellEventArgs^ e) { try{ board[e->ColumnIndex,e->RowIndex]->Value = board[e->ColumnIndex,e->RowIndex]->Value->ToString()->ToUpper(); } catch(Exception& e){} } |
Автор: Wound 09.01.19, 06:56 |
Вы бы для начала почитали, чем отличается C++/CLR(который к С++ не имеет отношения и является поделкой Microsoft для склеивания кода на native C++ и кода managed code .NET) от С++. И уж тогда бы начинали с правильного создания проекта. У вас 90% вопросов, которые вы тут задаете - отпали бы сами собой. Я так понял изучаете вы С++ по книжкам С++, но пишете почему то на С++ CRL. Вы тогда уж либо книжку возьмите по С++ CLR либо создавайте проект C++(без всяких CLI/CLR). Конкретно в вашем случае вам компилятор говорит что ссылочные типы С++ не применимы к объектам .NET. Другими словами вы ловите исключение типа System::Exception - которое является частью .NET, но пишете & в опереторе catch. Тут нужно либо так: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> try{ board[e->ColumnIndex,e->RowIndex]->Value = board[e->ColumnIndex,e->RowIndex]->Value->ToString()->ToUpper(); } catch(Exception e){} //! <<<<<< Без & } Либо так: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> try{ board[e->ColumnIndex,e->RowIndex]->Value = board[e->ColumnIndex,e->RowIndex]->Value->ToString()->ToUpper(); } catch(std::exception& e){} } Добавлено Вот на википедии про С++ CLI(про который вы тут вопросы задаете) -> https://ru.wikipedia.org/wiki/C%2B%2B/CLI А вот на той же самой википедии статья про С++ -> https://ru.wikipedia.org/wiki/C%2B%2B на котором вы якобы пытаетесь писать. Только получается у вас наоборот почему то. Если вы специально используете С++ CLI(например учительница вас заставила на нем писать), так значит и читать литературу нужно по этому языку, а не по С++. |