Attraper Plusieurs Personnalisée Exceptions? - C++

Je suis un étudiant en première programmation en C++ de la classe, et je travaille sur un projet où nous avons de créer de multiples personnalisé des classes d'exception, et ensuite dans l'un de nos gestionnaires d'événements, utiliser un try/catch bloc à les gérer de façon appropriée.

Ma question est: Comment puis-je reprendre mon plusieurs personnalisé exceptions dans mon try/catch bloc? GetMessage() est une méthode personnalisée dans mes classes d'exception qui renvoie l'exception explication comme une std::string. Ci-dessous j'ai compris tout le code de mon projet.

Merci pour votre aide!

bloc try/catch


    //This is in one of my event handlers, newEnd is a wxTextCtrl
try {
    first.ValidateData();
    newEndT = first.ComputeEndTime();
    *newEnd << newEndT;
}
catch (//don't know what do to here) {
    wxMessageBox(_(e.GetMessage()), 
                 _("Something Went Wrong!"),
                 wxOK | wxICON_INFORMATION, this);;
}

ValidateData() La Méthode


void Time::ValidateData()
{
    int startHours, startMins, endHours, endMins;

    startHours = startTime / MINUTES_TO_HOURS;
    startMins = startTime % MINUTES_TO_HOURS;
    endHours = endTime / MINUTES_TO_HOURS;
    endMins = endTime % MINUTES_TO_HOURS;

    if (!(startHours <= HOURS_MAX && startHours >= HOURS_MIN))
        throw new HourOutOfRangeException("Beginning Time Hour Out of Range!");
    if (!(endHours <= HOURS_MAX && endHours >= HOURS_MIN))
        throw new HourOutOfRangeException("Ending Time Hour Out of Range!");
    if (!(startMins <= MINUTE_MAX && startMins >= MINUTE_MIN))
        throw new MinuteOutOfRangeException("Starting Time Minute Out of    Range!");
    if (!(endMins <= MINUTE_MAX && endMins >= MINUTE_MIN))
        throw new MinuteOutOfRangeException("Ending Time Minute Out of Range!");
    if(!(timeDifference <= P_MAX && timeDifference >= P_MIN))
        throw new PercentageOutOfRangeException("Percentage Change Out of Range!");
    if (!(startTime < endTime))
        throw new StartEndException("Start Time Cannot Be Less Than End Time!");
}

Juste un de mes personnalisé des classes d'exception, les autres ont la même structure que celui


class HourOutOfRangeException
{
public:
        //param constructor
        //initializes message to passed paramater
        //preconditions - param will be a string
        //postconditions - message will be initialized
        //params a string
        //no return type
        HourOutOfRangeException(string pMessage) : message(pMessage) {}
        //GetMessage is getter for var message
        //params none
        //preconditions - none
        //postconditions - none
        //returns string
        string GetMessage() { return message; }
        //destructor
        ~HourOutOfRangeException() {}
private:
        string message;
};
  • Ne jetez pas les pointeurs, omettre la nouvelle.
  • C'est incroyable de voir votre progression à partir de ce point à maintenant, où vous êtes un top de SORTE que l'utilisateur avec plus de 40k rep. Vraiment génial!
InformationsquelleAutor Alex | 2010-03-25