Zdravím,
není ani tak podstatné čeho se snažím dosáhnout. To lze z kódu jasně vydedukovat, že se snažím ošetřit dynamickou alokaci určité struktury. Co je ale podstatné, aby uživatel zadal validní hodnotu pro vytvoření struktury. To jsem tedy ošetřil konstrukcí (vyjímkou) throw catch. Co ale řeším je, jak informovat programátora vyjímkou řetězcem, který tam sice mam ale proč "nepřekryje" standartní hlášení.
Exception thrown at 0x74D4C52F in ConsoleApplication1.exe: Microsoft C++ exception: char at memory location 0x002AF718.
/* Dynamic alloc struct */
Employeers * EMP;
try
{
if (EmpCount > 0)
EMP = new Employeers[EmpCount]; // An array cannot have zero size. (ISO 9899:2011 6.7.6.2)
else
throw "An array cannot have zero size";
}
catch (const char * Excp)
{
cerr << "Struct Employeers - " << endl;
throw Excp; // copy-initializes a new exception object of type std::exception
//throw; // rethrows the exception object of type std::length_error
}
Proč tedy není v debugu ten řetězec ? Proč mě na to reaguje výchozí vyjímka...