That may be by design since ServiceController is meant to "connect to and control the behavior of existing services" (c.f. here). Reading here the Status property is supposed to throw an InvalidOperationException if the service does not exist.
What you could do is use the GetServices() method to list the services on the machine and see if the thing you are looking for exists - perhaps something like:
Dim servicesButNotDevices As ServiceController() = ServiceController.GetServices() For Each service As ServiceController In servicesButNotDevices If service.ServiceName = "my service name" Then 'May also use DispalyName property depending on your use case 'Put in list box Exit For End If Next
If you didn't want to catch and handle the exception