why i can't use HitTest function in touch and mouse clicks at the same time?

can anyone tell me why i get this error when writing this code ?

Debug.Log(pauseIcon.GetComponent<GUITexture>().guiTexture.HitTest(Input.touches[0].position)+pauseIcon.GetComponent<GUITexture>().guiTexture.HitTest(Input.mousePosition) );

error : IndexOutOfRangeException: Array index is out of range.
OnlineBall.Update () (at Assets/OnlineBall.cs:180)

if i delete

pauseIcon.GetComponent<GUITexture>().guiTexture.HitTest(Input.touches[0].position)

or

pauseIcon.GetComponent<GUITexture>().guiTexture.HitTest(Input.mousePosition)

i will not get any error.
why i can’t use both of them at the same time?

If i remember correctly, Input.mousePosition will take into consideration first touch or touches[0]. It does not work the other way around, meaning Input.touches[0] does not represent the mouse position.

Now with regards to Input.touches[0], you will get index out of range exceptions if you are trying to access an item(Touch object) in the array of touches, but what if there wasn’t a touch since the last frame rendered? BOOM, exception, check the length of the array to see if it’s empty or null.