Gutes Design: statische Instanz zurückgeben als Fehlercode?

Diesbzgl. habe ich keine Erfahrung.

Wenn es sich um eine Anwendung handelt die eine Internetverbindung benötigt, dann ist „keine Verbindung“ eine Ausnahme.

Inwiefern unübersichtlich? Als Autor der Methode kannst Du doch genau spezifizieren welche Exceptions auftreten können. Der Nutzer muss dann gar nicht prüfen und kann einfach auf die spezifischen Exceptions reagieren - oder diese ignorieren.

*** Edit ***

Im obigen Entwurf, verstehe ich den Mehrwert der (mehreren) zusätzlichen Objekte nicht und warum static? Inwieweit ergibt sich für den Methodenaufrufer einen Unterschied zwischen NO_CONNECTION und TIMEOUT?