I am having a very tough time understanding exception handling after watching online tutorials and reading up on it. I am trying to pass test driven development, and I can't. What I have come up with so far is this. I am supposed to use this struct
struct ArrayException
{
    ArrayException(string newMessage = "error") :message(newMessage)
    {
    }
    string message;
};
The first try.
int sum(int* theArray, unsigned int arraySize)
{
    try
    {
        if (theArray = NULL)
        {
            throw ArrayException("NULL ARRAY REFERENCE");
        }
    }
    catch (int* param)
    {
        cout << "you can't have " << param << " as an array size";
    }
    int sum = 0;
    for (int i = 1; i < arraySize; i++)
    {
        sum += theArray[i];
    }
    return sum;
}
I also tried doing it this way.
int sum(int* theArray, unsigned int arraySize)
{
    if (theArray = NULL)
    {
        throw ArrayException("NULL ARRAY REFERENCE");
    }
    else
    {
        int sum = 0;
        for (int i = 1; i < arraySize; i++)
        {
            sum += theArray[i];
        }
        return sum;
    }
}
 
     
     
    