Fehlerbehandlung

Diese Seite dokumentiert die wichtigsten Maßnahmen zur Fehlervermeidung und -behandlung innerhalb der Glücksrad-App.


⚠️ Allgemeine Prinzipien

  • Validierung von Benutzereingaben
  • Abfangen von Netzwerkfehlern (z. B. Server nicht erreichbar)
  • Begrenzung des Punktestands (z. B. kein negativer Wert)
  • Verwendung von try-catch-Blöcken für kritische Vorgänge
  • Benutzerfreundliche Fehlermeldungen per Toast

Toast.makeText(this, "Upgrade gekauft!", Toast.LENGTH_SHORT).show();


🔐 Login & Registrierung

  • Fehlende Eingabe: Bei leerem Benutzernamen oder Passwort wird keine Anmeldung/Registrierung ausgeführt.

    if (username.isEmpty() || password.isEmpty()) { Toast.makeText(this, "Bitte alle Felder ausfüllen", Toast.LENGTH_SHORT).show(); return; }

  • Benutzername bereits vergeben: Der Code prüft, ob ein Benutzername bereits in der Datenbank vorhanden ist.

if (existingUser != null) { Toast.makeText(this, "Benutzername bereits vergeben", Toast.LENGTH_SHORT).show(); } else { userDao.insertUser(user); }

  • Login mit falschem Passwort: Es erfolgt ein Abgleich mit der Datenbank; bei Fehlschlag wird eine Fehlermeldung per Toast angezeigt.

if (user != null && user.password.equals(password)) { // Login erfolgreich } else { Toast.makeText(this, "Falsches Passwort oder Nutzer existiert nicht", Toast.LENGTH_SHORT).show(); }


🎡 Glücksrad & Punktevergabe

  • Kein negativer Punktestand möglich: Punktabzug auf einem negativen Feld kann den Punktestand nicht unter 0 bringen.

if (currentPoints + adjustedValue < 0) { currentPoints = 0; } else { currentPoints += adjustedValue; }

  • Dreh-Logik: Die Rotation ist gesichert gegen mehrfache gleichzeitige Klicks.

spinButton.setEnabled(false); // ... Drehung starten ... // am Ende: spinButton.setEnabled(true);


💰 Upgrade-Käufe

  • Nicht genug Punkte: Upgrades können nur gekauft werden, wenn genügend Punkte vorhanden sind.

if (currentPoints >= currentCost) { // Upgrade kaufen } else { Toast.makeText(this, "Nicht genügend Punkte", Toast.LENGTH_SHORT).show(); }

🌐 Netzwerk (HttpURLConnection)

  • Fehlende Verbindung: Falls keine Verbindung aufgebaut werden kann, zeigt ein Toast die Fehlermeldung.
    try {
      URL url = new URL(urls[0]);
      HttpURLConnection connection = (HttpURLConnection) url.openConnection();
      int code = connection.getResponseCode();
    
      BufferedReader reader = new BufferedReader(new InputStreamReader(
          (code == 200) ? connection.getInputStream() : connection.getErrorStream()
      ));
    
      // lesen ...
    } catch (IOException e) {
      e.printStackTrace();
      runOnUiThread(() ->
          Toast.makeText(SettingsActivity.this, "Netzwerkfehler", Toast.LENGTH_SHORT).show()
      );
    }
    

🔍 Hinweis: Durch den modularen Aufbau (UI, DAO, Logik getrennt) lässt sich die Fehlerbehandlung gezielt auf einzelne Bereiche eingrenzen und bei Bedarf erweitern.