Benutzer tommy0910 schrieb:
... Denn das Betriebssystem bräuchte bei den paar Rechten lediglich Leerdaten zurückliefern, damit nicht angepasste Apps weiter problemlos funktionieren:
Leerdaten zurückliefern, wenn eine Funktion nicht verfügbar ist, kann man machen, wenn es keine vorgesehene Fehlerbehandlung gibt.
Beispiel Kamera:
http://developer.android.com/
reference/android/hardware/Camera.html#open%28int%29
Um auf die Kamera zugriff zu bekommen muss man sich mit open() ein Objekt besorgen. Das kann schiefgehen und deshalb gibt es dafür eine RuntimeException. Die MUSS der Entwickler abfangen und etwas sinnvolles mit der Info tun.
Leider gibt es einige Entwickler denen Exceptions eher lästig sind. Und weil man die ja für den "Happy Path" nicht braucht, werden die wo es geht ignoriert.
Für viele andereFälle zeigt die API Doku keine Exception, aber liefert durch entsprechende Methoden ein objekt zurück - das aber auch NULL sein kann. Dann gilt es natürlich auch diesen Ausnahmefall zu beachten.
Ganz und gar nicht teile ich die Einschätzung von Hans-Georg Kluge das der Entwickler deshalb zwei Versionen pfelgen muss. Es reicht völlig aus eine Version zu pflegen und bei Zugriff auf "geschützte" Resourcen eben damit zu rechnen, dass diese eventuell nicht verfügbar sind.