このような関数を書いた場合、どのようにmain関数でtry、catchすればいいのでしょうか?よろしくお願いします。言語はc++です。クラスを補足しました。説明不足ですみません。  

template <class T>class DynArray {
    T* pData;
    int size; public:
    DynArray() {
        pData = NULL;
        size = 0;
    }

    DynArray(const DynArray& theOther) {
        size = 0;
        pData = NULL;
        this = theOther;
    }

    ~DynArray() {
        if (pData != NULL)
            delete[] pData;
    }

    void InsertAt(const T& newElement, int position);
    void RemoveAt(int position);
};

template<class T>void DynArray<T>::RemoveAt(int position) {
    if (position > size)
        throw new length_error("Position out of the size of DynArray");

    if (size == 1) {
        delete[] pData;
        size = 0;
        return;
    }
    size--;

    T* pTemp = new T[size];

    {
        int i, j;
        for (i = 0, j = 0; i < size; i++, j++) {
            if (j == position) {
                j--; continue;
            }
            pTemp[i] = pData[j];
        }
    }

    delete[] pData;
    pData = pTemp;

}