Привет всем. Читал nen про этот наболевший try...catch, но так и не решил своей проблемы. А заключается она вот в чём: У меня есть класс, пусть будет MyClass:
class MyClass
{
public:
....
struct SErrors
{
char* S;
SyntaxError(char* M){S=M;}
};
.....
};
Вот. В процедурах класса пытаюсь делать throw (SErrors("Error!"));
В самом майне, или при нажатии конопки обрабатываю:
MyClass Class;
try
{
Class.DoSomeThing();
}
catch(MyClass::SError E)
{
ShowMessage(E.S);
}
выдаёт ошибку в том месте где у меня throw (Например: if (strlen(String)<1) throw(SError("String is Empty!"))
: Raised Exception Class MyClass::SError with Message "Exception Object Adress 0x11A6FCA"
Что не так?
и примеры простые с инета копировал, всё равно вылетает эта ошибка.
Подскажите, пожалуйста. Заранее спасибо.
P.S.: У меня Borland C++ Builder 6.0
Здравствуйте, SlavaNV, Вы писали:
SNV>Привет всем. Читал nen про этот наболевший try...catch, но так и не решил своей проблемы. А заключается она вот в чём: У меня есть класс, пусть будет MyClass:
SNV>SNV>class MyClass
SNV>{
SNV>public:
SNV>....
SNV> struct SErrors
SNV> {
SNV> char* S;
SNV> SyntaxError(char* M){S=M;}
SNV> };
SNV>.....
SNV>};
SNV>
SNV>Вот. В процедурах класса пытаюсь делать throw (SErrors("Error!"));
SNV>В самом майне, или при нажатии конопки обрабатываю:
SNV>SNV>MyClass Class;
SNV>try
SNV>{
SNV>Class.DoSomeThing();
SNV>}
SNV>catch(MyClass::SError E)
SNV>{
SNV>ShowMessage(E.S);
SNV>}
SNV>
SNV>выдаёт ошибку в том месте где у меня throw (Например: if (strlen(String)<1) throw(SError("String is Empty!")): Raised Exception Class MyClass::SError with Message "Exception Object Adress 0x11A6FCA"
SNV>Что не так? и примеры простые с инета копировал, всё равно вылетает эта ошибка. Подскажите, пожалуйста. Заранее спасибо.
SNV>P.S.: У меня Borland C++ Builder 6.0
Вроде бы, Builder (и Delphi) при запуске программ из IDE сам перехватывает исключения и рисует окошко с сообщением об ошибке, если запускать полученный exe самому, то ничего подобного не будет.
The last good thing written in C was Franz Schubert's Symphony No. 9.
Здравствуйте, SlavaNV, Вы писали:
SNV>выдаёт ошибку в том месте где у меня throw (Например: if (strlen(String)<1) throw(SError("String is Empty!")): Raised Exception Class MyClass::SError with Message "Exception Object Adress 0x11A6FCA"
SNV>Что не так? и примеры простые с инета копировал, всё равно вылетает эта ошибка. Подскажите, пожалуйста. Заранее спасибо.
SNV>P.S.: У меня Borland C++ Builder 6.0
Это всего лишь IDE перехватывает, когда под ней запускаешь. Можно ее отучить от этого через настройки меню Tools->Environment->Debug Options, кажется, под рукой нету...
Там нужно снять 2 чекбокса — "Stop on Delphi exceptions" и "Stop on user exceptions"
Вообще, сообщению место в Delphi & Builder