2012-05-16 2 views
0

Я хотел бы знать, как писать неуправляемые исключения в Visual C++?Как написать пользовательские исключения в неуправляемом коде Visual C++?

#include <string> 
#include <exception> 

using namespace std; 
using namespace System; 

class GraphException : public Exception 
{ 
public: 
    GraphException() { } 
// GraphException(string message) : Exception (message) 
// { } 
// GraphException(string message, Exception inner) : Exception (message, inner) 
// { } 
}; 

это не работает, я получаю следующее сообщение об ошибке,

Ошибка C3625 1 ошибка: 'GraphException': неуправляемый тип не может получить от типа управляемого 'System :: Exception' гр : \ breadthfirst \ graph \ graphexception.h 10 1 breadthFirst

Может кто-нибудь мне помочь?

ответ

4

Вывести из std::exception вместо Exception.

Еще лучше получить одно из более специализированных исключений в stdexcept.

+0

вы удивительно большое спасибо :) –

+0

Как раз в сторону вы можете «бросить» что угодно. Это может быть любой класс/структура, который вам нравится ... или даже примитивный тип. – Dennis

+3

Также не забудьте «throw MyException (foo);', а не 'throw new MyException (foo);' –

Смежные вопросы