如何在冒泡排序中为字符串和双精度实现异常处理程序?

How do I implement an exception handler for strings and doubles in my bubble sort?

        #include <iostream>
       #include<conio.h>
       using namespace std;

       int main()
       {

       int hold;
       int swapNumber=0;
       int compare=0;
       int array[10];

        for(int i=0; i<10; i++)
       {
        cout<<"Enter 10 numbers: "<<endl;
        cin>>array[i]; 
} 
cout<<endl; 

// what user inputed
cout<<"Originally entered array by the user is: "<<endl;

for(int k=0; k<10; k++)
{
    cout<<array[k];
    cout<<endl; 
} 
cout<<endl;

//begin bubblesort method
for(int i=0; i<9; i++)
{

    for(int k=0; k<9; k++)
{
        compare++;
        if(array[k]>array[k+1])
{
            hold=array[k];
            array[k]=array[k+1];
            array[k+1]=hold; 
            swapNumber++;//adding swap count by 1
            }//end of if
        } //end of for j
    } // end of for i

//when sorted sm to large
cout<<"Sorted Array is: "<<endl;
for(int i=0; i<10; i++)
{
    cout<<array[i]<<endl; 
} 

//how many times numbers are swapped
cout<<"Number of times Swapped: "<<swapNumber<<endl;

//how ,many times numbers are compared
cout<<"Number of times Compared: "<<compare<<endl;

getch();
}

我的任务是添加一个异常处理程序,它声明 "Error! ONLY INTEGER INPUT ALLOWED "。该处理程序应该捕获双精度数和字符串。我试过 try and catch 方法,但我不太清楚该把它放在哪里才能正常工作。我还阅读了 catch all 方法,这似乎是我需要做的。我刚刚完成了交换和比较的计数器方法,我相信它们工作正常。

#include<iostream>
#include<conio.h>
using namespace std;

int main()
{
    int hold, swapNumber = 0, compare = 0, array[10];
    const string Error = "Error! ONLY INTEGER INPUT ALLOWED!";

    cout << "Enter 10 numbers: " << endl;
    try
    {
        for ( int i = 0; i < 10; i++ )
        {
            cin >> array[i];
            if ( !cin ) // Error in reading input stream
            {
                throw Error;
            }
        }
    }
    catch ( const string& E )
    {
        cout << E << endl;
        return 0;
    }
    cout << endl;

    cout << "Originally entered array by the user is: " << endl;
    for ( int k = 0; k < 10; k++ )
    {
        cout << array[k] << endl;
    }
    cout << endl;

    for ( int i = 0; i < 9; i++ )
    {
        for ( int k = 0; k < 9; k++ )
        {
            compare++;
            if ( array[k] > array[k + 1] )
            {
                hold = array[k];
                array[k] = array[k + 1];
                array[k + 1] = hold;
                swapNumber++;
            }
        }
    }

    cout << "Sorted Array is: " << endl;
    for ( int i = 0; i < 10; i++ )
    {
        cout << array[i] << endl;
    }
    cout << endl;

    cout << "Number of times Swapped: " << swapNumber << endl;
    cout << "Number of times Compared: " << compare << endl;

    getch();
}