Exceptions | Oberklasse im catch



  • Hallo

    ist es möglich in einem catch-block einfach die Oberklasse anzugeben?

    try  {
       doIt();
    } catch (Exception1 e){
       e.message();
    } catch (Exception2 e){
       e.message();
    } catch (Exception3 e){
       e.message();
    }
    
    try  {
       doIt();
    } catch (Exception e){
       e.message();
    }
    

    also ich bekomme Fehlermeldung.. muss man was bestimmtes beachten?

    #ifndef EXCEPTION_H
    #define EXCEPTION_H
    class Exception{
    public:
    	virtual void message();
    };
    
    #endif /* PEXCEPTION_H_ */
    
    #ifndef INDEX_OUT_OF_BOUNDS_EXCEPTION_INCLUDED
    #define INDEX_OUT_OF_BOUNDS_EXCEPTION_INCLUDED
    
    #include <iostream>
    #include "PException.h"
    class IndexOutOfBoundsException : public Exception{
    
    private:
    	int maxIndex;
    	int actualIndex;
    public:
    	IndexOutOfBoundsException(int maxIndex, int actualIndex);
    	void message();
    
    };
    
    #endif
    

    Danke schon mal



  • Zuerst einmal solltest du sagen, was für eine Fehlermeldung du erhältst.

    Aber versuche mal die Exception per Referenz zu fangen:

    try
    {
       doIt();
    }
    catch (Exception &e)
    {
       e.message();
    }
    


  • Dit_ schrieb:

    also ich bekomme Fehlermeldung..

    Es wäre gut, wenn du die Fehlermeldung nächstes Mal auch angeben könntest.



  • Dit_ schrieb:

    muss man was bestimmtes beachten?

    Ja. Exceptions möglichst per Referenz fangen, nicht per Value.
    Was noch fehlt kann man dir ohne die Fehlermeldung nicht sagen...


Anmelden zum Antworten