thown exception treated as regular method return
I have an odd issue with my C++ exception.  I've tried, and failed, to recreate it with a simpler sample code (and I'm afraid I can't link to my live code due to lack of means to get code between the systems).  However, the basic idea is that a thrown exception doesn't seem to propigate up to the area it should be caught at.

I have something roughly equivlant to this (though as I said my sample code doesn't seem to recreate the issue)

    void subfunction2(int testValue){
        if(testValue>90)
            cout<<"before throw sub2"<<endl
            throw(33) //I use to use a constant, but tried changing to hardcode to see if that would fix it
            cout<<"aftre throw sub2"<<endl
    }


    void subFunction1(string input){
        ///parse input
        switch(inputType){
        case CASE1:
            cout<<"before Throw sub1";
            subFunction2(value);
            cout<<"after throw sub1";
            break;
        //more stuff
    }

    int main(){
        try{
           subFunction1();
        catch (int value){
            cout<<"exception caught";
        }
    }

As I said the above is a very rought estimation of my real code, which is far more complicated.  However when I try running my code with these print statments I get

    before throw sub1
    before throw sub2
    after throw sub2

In other words the throw correctly exits the current function.  However, rather then subFunction1 propigating the exception up to my main where it can be caught, as I want, instead subFunction1 acts as if a regular method return happened and keeps going on it's merry way trying to read and parse invalid input.
thown exception treated as regular method return
===

I have an odd issue with my C++ exception.  I've tried, and failed, to recreate it with a simpler sample code (and I'm afraid I can't link to my live code due to lack of means to get code between the systems).  However, the basic idea is that a thrown exception doesn't seem to propigate up to the area it should be caught at.

I have something roughly equivlant to this (though as I said my sample code doesn't seem to recreate the issue)

    void subfunction2(int testValue){
        if(testValue>90)
            cout<<"before throw sub2"<<endl
            throw(33) //I use to use a constant, but tried changing to hardcode to see if that would fix it
            cout<<"aftre throw sub2"<<endl
    }


    void subFunction1(string input){
        ///parse input
        switch(inputType){
        case CASE1:
            cout<<"before Throw sub1";
            subFunction2(value);
            cout<<"after throw sub1";
            break;
        //more stuff
    }

    int main(){
        try{
           subFunction1();
        catch (int value){
            cout<<"exception caught";
        }
    }

As I said the above is a very rought estimation of my real code, which is far more complicated.  However when I try running my code with these print statments I get

    before throw sub1
    before throw sub2
    after throw sub2

In other words the throw correctly exits the current function.  However, rather then subFunction1 propigating the exception up to my main where it can be caught, as I want, instead subFunction1 acts as if a regular method return happened and keeps going on it's merry way trying to read and parse invalid input.