Exception causes access violation

T

Toon Huysmans

Hi,

I have a mind boggling error in VC++ .NET.

An exception THException is being thrown, but it seems to cause an
accessviolation, but the code is so simple that I cant figure out where the
av comes from.


MyMesh::point cog()
{
if (fCount != 0)
return fCoG/fCount;
else
throw THException("There were no vertices to average...");
<--- this gets thrown
}


class THException
{
public:
THException(string msg){fMsg = msg;}
string getMessage(){return fMsg;}
protected:
private:
string fMsg;
};


try
{
...
mesh.cog()
...
}
catch(THException e)
{
cerr << "EXCEPTION:" << e.getMessage() << endl;
exit(1);
}
catch(...)
{
cerr << "EXCEPTION:" << "Unknown Exception caught..." << endl;
exit(1);
}


OUTPUT:
First-chance exception at 0x77e73887 in SphericalParameterization.exe:
Microsoft C++ exception: THException @ 0x0012f9d8.
First-chance exception at 0x004f1bbc in SphericalParameterization.exe:
0xC0000005: Access violation reading location 0xcdcdcddd.
 
R

Ron Natalie

Toon Huysmans said:
Hi,

I have a mind boggling error in VC++ .NET.

Try this in micrsoft.public.vc.language. It looks fine from a C++ point of
view (provided all those spurious copies of string don't throw).

CDCDCDCD is the debug mode "fill" pattern for uninitialized memory.
Are you sure the compile options you have specified allow exceptions?
I don't know about .NET, but VC6 you had to specifically enable exception
handling (and even then there were some bugs in it).
class THException
{
public:
THException(string msg){fMsg = msg;}

How aboiut
THException(const string& msg) : fMsg(msg) { }
catch(THException e)

If you ever derive from THException, would be better to catch by reference here.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,818
Messages
2,569,727
Members
45,664
Latest member
Phil79581

Latest Threads

Top