Tienes toda la razón... eso es una excepción que no fue controlada. Puede ocurrir cuando no se encuentra la ruta del archivo en la ruta especificada.
Prueba de la siguiente manera:
Código vb:
Ver originalPrivate Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim ruta As String
ruta = getAppPath() + "firefox\setup.exe"
Try
Shell(ruta, Microsoft.VisualBasic.AppWinStyle.MaximizedFocus)
Catch ex As Exception
MessageBox.Show("No se encontro el archivo")
End Try
End Sub