Exception bei Abfrage von Ländercodes in API?

tom.j85

tom.j85

Mitglied
Hallo liebe Community,

ich schreibe ein Programm, bei dem verschiedene API's mit Länderinformationen verknüpft und die Daten ans Frontend gesendet werden. Die API, die ich zur Ermittlung von Corona Fallzahlen verwende hat aber, im Gegensatz zu den anderen API's leider nicht alle Ländercodes ISO_2. Damit bekomme ich, wenn ich als RequestParam z.B. Barbados (BB) verwende, einen 500er Fehler mit "Null Pointer Expeption" zurück.

Da die JSON Form in der Corona API für die Liste aller Länder eine andere ist als die für die Abfrage einzelner Länder (und ich meine Modelle nicht aufblasen will),
und ich auch nicht glaube, dass jedes mal durch die Map iterieren um herauszufinden, ob dieser Ländercode tatsächlich existiert, die beste Lösung ist, dachte ich an try und catch.

Meine Idee: Wenn das mit der Abfrage z.B. von BB nicht funktioniert, wird der Fehler gefangen und die Variable auf null gesetzt. Mein Controller:


Java:
package com.savetravel.SaveTravel;

import java.text.DecimalFormat;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.savetravel.SaveTravel.AllInfoObject.AllInfoObject;
import com.savetravel.SaveTravel.TravelWarning.TravelWarningObject;
import AllBasicCountryData.AllBasicCountryData;
import Corona.CoronaObject;
import Corona.CountryCoronaInner;
import com.savetravel.SaveTravel.TravelWarning.CountryCode;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;

import org.springframework.web.client.RestTemplate;

@RestController
@RequestMapping("/gettravelwarnings")
public class TravelWarningController {

    AllInfoObject allInfoObject = new AllInfoObject();
    TravelWarningObject travelWarningObject = new TravelWarningObject();
    CoronaObject coronaObject = new CoronaObject();
    Double coronaActiveCases = new Double(0);
    boolean cocoExistsInCorona = false;

    @Autowired
    ApiService apiService;
    
    
    @GetMapping("/onetw/")
    public ResponseEntity<AllInfoObject> getAllInfos(@RequestParam(name = "coco", required = true) String coco)
            throws JsonMappingException, JsonProcessingException {

        coco = coco.toUpperCase();


        try {

            coronaObject = apiService.getCoronaByCountry(coco);

            for (CountryCoronaInner countryCoronaInner : coronaObject.getCountrydata()) {

                coronaActiveCases = (countryCoronaInner.getTotal_cases() - countryCoronaInner.getTotal_recovered());
                allInfoObject.setCoronaActiveCases(coronaActiveCases);

                cocoExistsInCorona = true;
            }

        } catch (Exception e) {
            coronaActiveCases =  null;

        }

        AllBasicCountryData allBasicCountryData = new AllBasicCountryData();
        allBasicCountryData = apiService.getACDfromAPIService(coco);

        if (cocoExistsInCorona) {

            Double coronaPopulationRatio = (coronaActiveCases / allBasicCountryData.getPopulation());

            DecimalFormat df = new DecimalFormat("0.000");
            String coronaPopulationRatioRounded = df.format(coronaPopulationRatio);

            allInfoObject.setCoronaByPopulation(coronaPopulationRatioRounded);

        } else {

            allInfoObject.setCoronaByPopulation(null);

        }

        return new ResponseEntity<AllInfoObject>(allInfoObject, HttpStatus.OK);
    }
}


Die Funktionen aus dem Service

Java:
 public CoronaObject getCoronaByCountry(String coco) {

        HttpHeaders headers = new HttpHeaders();
        headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        headers.add("user-agent",
                "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36");
        HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);

        RestTemplate restTemplate = new RestTemplate();
        CoronaObject coronaCases = new CoronaObject();

        ResponseEntity<CoronaObject> responseEntity = restTemplate.exchange(
                "https://api.thevirustracker.com/free-api?countryTotal=" + coco.toUpperCase(), HttpMethod.GET, entity,
                CoronaObject.class);
        coronaCases = responseEntity.getBody();

        return coronaCases;

    }

    public AllBasicCountryData getACDfromAPIService(String coco) {

        RestTemplate restTemplate = new RestTemplate();

        AllBasicCountryData newAllBasicCountryData = new AllBasicCountryData();

        ResponseEntity<AllBasicCountryData> responseEntity = restTemplate
                .getForEntity("https://restcountries.eu/rest/v2/alpha/" + coco, AllBasicCountryData.class);
        newAllBasicCountryData = responseEntity.getBody();
        return newAllBasicCountryData;

    }

Und die (zumindest denke ich dass es diese sind) relevanten Objekte:

Code:
package com.savetravel.SaveTravel.AllInfoObject;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class AllInfoObject {

    String countryName;
    String countryCode;
    String lastUpdateTW;
    Double travelWarningScore;
    Double coronaScore;
    String coronaByPopulation;
    Double coronaActiveCases;
        
}

Java:
package Corona;

import java.util.ArrayList;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class CoronaObject {

    ArrayList<CountryCoronaInner> countrydata;
    String stat;
    
    
    
}

Code:
package Corona;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class CountryCoronaInner {
    
    private Info info;
    private Double total_cases;
    private Double total_recovered;
    private int total_unresolved;
    private String total_deaths;
    private String total_new_cases_today;
    private String total_new_deaths_today;
    private int total_active_cases;
    private long total_serious_cases;
    private int total_danger_rank;

        
    
}

Das Problem: Es funzt nicht ;) Postman sagt immer wieder: Nope. 500! Internal Server Error.
Ist auch das erste mal, dass ich try und catch so verwende...gibt es da eine andere Möglichkeit zu sagen: Liebes Programm, wenn Du hier nicht weiterkommst, tu bitte das hier...[...].? Oder ist mein Fehler ganz woanders? :oops:

Vielen Dank :)
Tom
 
O

Oneixee5

Mitglied
Exceptions (try/catch) sind nicht für die Programmsteuerung, sondern für die Ausnahmebehandlung, gedacht, so etwas solltest du unterlassen.
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
In dem Fall würde ich auf eine Map setzen, die zwischen den verschiedenen County-Codes mappt. In deiner Applikation nutzt du nur einen Code (kannst du zb auch ein Enum für nutzen), die Services mappen dann wenn nötig auf das passende.


Die nicht vorhandenen Country-Code kann man mMn durchaus mit einer Exception behandeln. Die Country-Codes kommen so wie es aussieht auch vom Nutzer? Auf gänzlich falsche Eingaben musst du also sowieso reagieren, Nutzer können ja auch "Foobar" eingeben.

Allerdings ist das an der Stelle alles andere als eine sinnvoll Behandlung der Exception. Anstatt die zu fangen, kannst du sie einfach weiterwerfen. Aktuell würde der Nutzer auch für "Foobar" ein "OK" zurückbekommen, was ofensichtlich Unsinn ist.
 
tom.j85

tom.j85

Mitglied
Hi, vielen Dank für die Antwort,

die countrycodes liegen in einer Map im Frontend und werden dort per Click auf das Land ausgewählt, der Nutzer hat hier also keine Macht :)

Die Idee mit dem try/catch war im Grunde, dass das Programm, falls nicht das erwartete Objekt von der API zurückgegeben wird, einen anderen Weg einschlägt. Es geht, runtergebrochen, also um diese Funktion:

Java:
    public CoronaObject getCoronaByCountry(String coco) {

        HttpHeaders headers = new HttpHeaders();
        headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        headers.add("user-agent",
                "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36");
        HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);

        RestTemplate restTemplate = new RestTemplate();
        CoronaObject coronaCases = new CoronaObject();
       
        ResponseEntity<CoronaObject> responseEntity = restTemplate.exchange(
                "https://api.thevirustracker.com/free-api?countryTotal=" + coco.toUpperCase(), HttpMethod.GET, entity,
                CoronaObject.class);
        coronaCases = responseEntity.getBody();
       
        return coronaCases;

    }

Gibt es eine Möglichkeit zu checken, ob das was das restTemplate empfängt tatsächlich die Form des Objekt "CoronaObject" hat? Irgendwie mit .getClass() oder so ähnlich? Dann könnte ich einfach einen if-Block einbauen, der "coronaCases" auf null setzt falls nicht und weitersendet. Momentan passt das was beispielsweise bei bb (Barbados) zurückgegeben wird nicht in mein Model von CoronaObject, was zurückkommt ist nämlich

JSON:
{
   "results": [
      {
         "data": "none"
      }
   ],
   "stat": "ok"
}

Danke :)
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Gibt es eine Möglichkeit zu checken, ob das was das restTemplate empfängt tatsächlich die Form des Objekt "CoronaObject" hat? Irgendwie mit .getClass() oder so ähnlich? Dann könnte ich einfach einen if-Block einbauen, der "coronaCases" auf null setzt falls nicht und weitersendet. Momentan passt das was beispielsweise bei bb (Barbados) zurückgegeben wird nicht in mein Model von CoronaObject, was zurückkommt ist nämlich
Eine Exception wäre in den Fall doch genau das richtige. Ein if und dann irgendwas auf null setzen, würde ich eher als Falsch ansehen.

Der Fall den du beschreibst ist ja kein „dort ist eine unbekannte Zahl an Fällen“ sondern „das Land gibt’s nicht“ - für letzteres wäre null (oder besser Optional) passend, für ersteres fände ich die Exception besser.


Hab dich in Post vorher glaub ich auch falsch verstanden. Die eine API enthält einfach manche Länder nicht, oder? Ich hab’s erst so verstanden, dass manche Länder-Code „falsch“ sind...

In dem Fall: mach es auf Service-Seite explizit, zB mit Optional.
Intern kannst du das dann behandeln wie du willst, ob du die Exception fängst oder den Statuscode nutzt fände ich an der Stelle egal –
 
tom.j85

tom.j85

Mitglied
Erstmal danke für die Einsicht, dass es auch Optionals in Java gibt! Ich bin mir aber nicht sicher ob ich sie richtig verwende...denn irgendwie bekomme ich bei Barbados immernoch meinen 500er Fehler. Was ich gebaut habe:

- im Sevice:

Java:
public Optional<CoronaObject> getCoronaByCountry(String coco) {

        HttpHeaders headers = new HttpHeaders();
        headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        headers.add("user-agent",
                "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36");
        HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);

        RestTemplate restTemplate = new RestTemplate();
        Optional<CoronaObject> coronaCases;

        ResponseEntity<CoronaObject> responseEntity = restTemplate.exchange(
                "https://api.thevirustracker.com/free-api?countryTotal=" + coco.toUpperCase(), HttpMethod.GET, entity,
                CoronaObject.class);
        coronaCases = Optional.ofNullable(responseEntity.getBody());

        return coronaCases;

    }
- im Controller

Java:
    @GetMapping("/onetw/")
    public ResponseEntity<AllInfoObject> getAllInfos(@RequestParam(name = "coco", required = true) String coco)
            throws JsonMappingException, JsonProcessingException {

        coco = coco.toUpperCase();

Optional<CoronaObject> coronaObject = apiService.getCoronaByCountry(coco);

        if (coronaObject.isPresent()) {

            for (CountryCoronaInner countryCoronaInner : coronaObject.get().getCountrydata()) {
                coronaActiveCases = (countryCoronaInner.getTotal_cases() - countryCoronaInner.getTotal_recovered());
                allInfoObject.setCoronaActiveCases(coronaActiveCases);
                cocoExistsInCorona = true;

            }
        }

        AllBasicCountryData allBasicCountryData = new AllBasicCountryData();
        allBasicCountryData = apiService.getACDfromAPIService(coco);

        if (cocoExistsInCorona) {

            Double coronaPopulationRatio = (coronaActiveCases / allBasicCountryData.getPopulation());

            DecimalFormat df = new DecimalFormat("0.000");
            String coronaPopulationRatioRounded = df.format(coronaPopulationRatio);

            allInfoObject.setCoronaByPopulation(coronaPopulationRatioRounded);

        } else {

            allInfoObject.setCoronaByPopulation(null);

        }

        return new ResponseEntity<AllInfoObject>(allInfoObject, HttpStatus.OK);
    }
}

Das if (coronaObject.isPresent()) scheint völlig ignoriert zu werden, die Console sagt der Fehler liegt zwei Codezeilen darunter, also bei der Berechnung der aktiven Corona Fälle. Also da, wo das Programm gar nicht durchlaufen sollte, wenn der Guard funktionieren würde. Ich bin verwirrt o_O:oops:

Danke :)
 
O

Oneixee5

Mitglied
die countrycodes liegen in einer Map im Frontend und werden dort per Click auf das Land ausgewählt, der Nutzer hat hier also keine Macht
Das ist ein ziemlich großer Irrtum. Im Browser kann alles manipuliert werden. Die serverseitige Überprüfung der Eingaben, ist zur Sicherheit der Anwendung, noch viel wichtiger als auf der Client-Seite.
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
die countrycodes liegen in einer Map im Frontend und werden dort per Click auf das Land ausgewählt, der Nutzer hat hier also keine Macht
Das ist ein ziemlich großer Irrtum. Im Browser kann alles manipuliert werden. Die serverseitige Überprüfung der Eingaben, ist zur Sicherheit der Anwendung, noch viel wichtiger als auf der Client-Seite.
Oh, gar nicht gesehen, dass das geändert wurde, was davor da stand klang eher nach dem Gegenteil :D
 
tom.j85

tom.j85

Mitglied
So...eure sicherheitstechnischen Einwände sind natürlich berechtigt. Weniger inspirierend zur Problemlösung, aber berechtigt :)
Als kleines Update: Es funktioniert jetzt. Ich habe keine Ahnung WARUM und weshalb vorher nicht, aber jetzt gehts, wie es soll.

Ich habe sowohl Optionals verwendet als auch den möglichen Fehler gefangen. Dann habe ich die if-bedingung umgedreht (also erst if !cocoExistInCorona abgefragt) und der Teufel weiß warum, auf einmal tat es was es soll. Kurzum:

Java:
@RestController
@RequestMapping("/gettravelwarnings")
public class TravelWarningController {

    AllInfoObject allInfoObject = new AllInfoObject();
    Double coronaActiveCases = new Double(0.0);
    boolean cocoExistsInCorona = false;

    @Autowired
    ApiService apiService;

@GetMapping
    public ResponseEntity<AllInfoObject> getAllInfos(@RequestParam(name = "coco", required = true) String coco)
            throws JsonMappingException, JsonProcessingException {

        coco = coco.toUpperCase();

try {
            Optional<CoronaObject> coronaObject = apiService.getCoronaByCountry(coco);

            if (coronaObject.isPresent()) {

                for (CountryCoronaInner countryCoronaInner : coronaObject.get().getCountrydata()) {
                    coronaActiveCases = (countryCoronaInner.getTotal_cases() - countryCoronaInner.getTotal_recovered());
                    allInfoObject.setCoronaActiveCases(coronaActiveCases);
                    cocoExistsInCorona = true;
                }
            }
                    
            } catch (Exception e) {

               cocoExistsInCorona = false;
            System.out.println("Country Code " + coco.toString() + " does not exist in Corona database!");

        }

        AllBasicCountryData allBasicCountryData = new AllBasicCountryData();
        allBasicCountryData = apiService.getACDfromAPIService(coco);

        System.out.println(cocoExistsInCorona + " = value of cocoExistsInCorona");
        
        if (!cocoExistsInCorona) {

             allInfoObject.setCoronaByPopulation(null);
             allInfoObject.setCoronaActiveCases(null);

        } else {
    
            Double coronaPopulationRatio = (coronaActiveCases / allBasicCountryData.getPopulation());
            DecimalFormat df = new DecimalFormat("0.000");
            String coronaPopulationRatioRounded = df.format(coronaPopulationRatio);
            allInfoObject.setCoronaByPopulation(coronaPopulationRatioRounded);

        }

        return new ResponseEntity<AllInfoObject>(allInfoObject, HttpStatus.OK);
    }
}

Falls jemand weiß weshalb das jetzt funzt - ich bin immer überglücklich über Backgroundverständnis. Mir fehlt das in diesem Fall. Aber immerhin funzt es und explodiert nicht.
LG Tom :)
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
So...eure sicherheitstechnischen Einwände sind natürlich berechtigt. Weniger inspirierend zur Problemlösung, aber berechtigt :)
Mit Sicherheit hat das wenig zu tun, der Fehler eröffnet ja keinerlei Sicherheitslücke :) Aber trägt halt zur Stabilität der Anwendung bei


Als kleines Update: Es funktioniert jetzt. Ich habe keine Ahnung WARUM und weshalb vorher nicht, aber jetzt gehts, wie es soll.
Direkt man vorneweg: nein, das funktioniert nicht, mindestens nicht so, wie du erwartest.

In Spring-Controllern darfst du keinerlei veränderbare Variablen haben. Der Controller existiert einmalig im laufenden Programm, wenn z.B. mehrere Requests gleichzeitig auf den Controller zugreifen, überschrieben die gegenseitig das allInfoObject-Objekt.

Ansonsten, zu dem Code selber:

apiService.getCoronaByCountry(coco); sollte entweder eine Exception werfen oder einen Optional zurückgeben.

Dann kannst du "Early Exit" nutzen, wenn du weißt, das es keine Daten gibt, etwa:
Java:
Optional<CoronaObject> coronaObject = apiService.getCoronaByCountry(coco);
if (coronaObject.isEmpty()) {
    return new ResponseEntity<AllInfoObject>(<<leeres AllInfoObject>> , HttpStatus.OK);
}

//der restliche Code, in dem der Fall fehlender Daten nicht berücksichtigt werden muss
 
tom.j85

tom.j85

Mitglied
Direkt man vorneweg: nein, das funktioniert nicht, mindestens nicht so, wie du erwartest.

In Spring-Controllern darfst du keinerlei veränderbare Variablen haben. Der Controller existiert einmalig im laufenden Programm, wenn z.B. mehrere Requests gleichzeitig auf den Controller zugreifen, überschrieben die gegenseitig das allInfoObject-Objekt.

Vielen Dank, das ist ein superwichtiger Input und ja, das macht extrem viel Sinn, das hatte ich nicht auf dem Schirm. Das gilt sicher für globale Variablen, aber auch für die lokalen? Es sind Bruchteile von Sekunden, aber ich kann mir vorstellen, dass best practice ist auch hier veränderbare Variablen zu vermeiden, oder?
Das würde dann heißen, dass der Controller aus einer Aneinanderreihung von Funktionen besteht, die im jeweiligen Service hinterlegt sind, sehe ich das richtig?

Ich habe den early exit immer vermieden, da ich mit den allInfoObject noch jede menge vor habe...letztendlich werden es wohl so 10 externe APIs, die ich ansteuere und verknüpfe. Mit ausgelagerten Funktionen macht das aber wieder Sinn! Sehr cool, vielen Dank! :)
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Vielen Dank, das ist ein superwichtiger Input und ja, das macht extrem viel Sinn, das hatte ich nicht auf dem Schirm. Das gilt sicher für globale Variablen, aber auch für die lokalen? Es sind Bruchteile von Sekunden, aber ich kann mir vorstellen, dass best practice ist auch hier veränderbare Variablen zu vermeiden, oder?
Nein, lokale Variablen existieren unabhängig voneinander für jeden Methodenaufruf.

Das würde dann heißen, dass der Controller aus einer Aneinanderreihung von Funktionen besteht, die im jeweiligen Service hinterlegt sind, sehe ich das richtig?
Im Idealfall ja, ein Service enthält die Logik, ein Controller stellt dann nur die Verbindung von REST-Schnittstelle zu Service da. Damit fördert man u.a. Testbarkeit.
 
sascha-sphw

sascha-sphw

Bekanntes Mitglied
Dann kannst du "Early Exit" nutzen, wenn du weißt, das es keine Daten gibt, etwa:
Java:
Optional<CoronaObject> coronaObject = apiService.getCoronaByCountry(coco);
if (coronaObject.isEmpty()) {
return new ResponseEntity<AllInfoObject>(<<leeres AllInfoObject>> , HttpStatus.OK);
}

//der restliche Code, in dem der Fall fehlender Daten nicht berücksichtigt werden muss

Etwas syntaktischen Zucker oben drauf, dann sieht es so aus.
Java:
CoronaObject coronaObject = apiService.getCoronaByCountry(coco)
    .orElseThrow(() -> new ResponseEntity<AllInfoObject>(<<leeres AllInfoObject>> , HttpStatus.OK));
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Exception Allgemeine Java-Themen 5
L Streams und Exception Allgemeine Java-Themen 8
C FileLock - Exception wird immer geworfen Allgemeine Java-Themen 4
S Wertbeschränkung Exception oder Anpassung? Allgemeine Java-Themen 4
D Nullpointer Exception Problem Allgemeine Java-Themen 5
Kirby_Sike Nullpointer Exception bei Queue Allgemeine Java-Themen 5
R Schlüsselworte "Throw new exception" gibt nicht den String als Fehlermeldung aus Allgemeine Java-Themen 2
P Swing Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: npoints > xpoints.length || npoints > ypoints.length Allgemeine Java-Themen 5
S RMI Exception Allgemeine Java-Themen 0
S MSSQL Exception & Connection String Allgemeine Java-Themen 19
S Interface, generischer Datentyp, Exception? Allgemeine Java-Themen 3
coolian warum bekomme ich ein string index out of bounds exception Allgemeine Java-Themen 17
S Exception in thread "main" java.lang.NullPointerException at FamilienApp.main(FamilienApp.java:15) Allgemeine Java-Themen 1
M Klassen Serializable Exception Allgemeine Java-Themen 1
E HILFE !! Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils Allgemeine Java-Themen 4
E Thread Exception Allgemeine Java-Themen 6
javaerd Binomialkoeffizient ausrechnen, Exception in thread "main" java.lang.StackOverflowError Allgemeine Java-Themen 6
M xlsx File auslesen Exception occured Allgemeine Java-Themen 13
X jvm exception abfangen und an externes Programm schicken Allgemeine Java-Themen 4
G Java/LibGDX File Loading Exception Allgemeine Java-Themen 2
B Exception in Application init method Allgemeine Java-Themen 5
H OOP Testen einer Exception mit JUnit Allgemeine Java-Themen 8
M javafx ComboBox- Nullpointer Exception Allgemeine Java-Themen 6
perlenfischer1984 Dialect class not found exception Allgemeine Java-Themen 15
Thallius Bekomme keine Exception mit Stacktrace mehr. Was habe ich getan? Allgemeine Java-Themen 13
perlenfischer1984 Functionsparameter prüfen und eine Exception werfen !? Allgemeine Java-Themen 11
E Probleme mit nextInt() und Exception Allgemeine Java-Themen 35
Z Exception wird nicht ausgelöst Allgemeine Java-Themen 2
0 Animiertes Gif anzeigen - NullPointer Exception Allgemeine Java-Themen 19
T Konstruktor löst exception aus Allgemeine Java-Themen 7
KilledByCheese Dezimal nach Hexadezimal rechner wirft seltsame exception Allgemeine Java-Themen 4
V Compiler-Fehler Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 125, Size: 125 Allgemeine Java-Themen 11
D Codeausführung bevor Exception abgeschlossen ist Allgemeine Java-Themen 11
T FileNotFound Exception Allgemeine Java-Themen 9
L Exception/Error auf JDialog umleiten Allgemeine Java-Themen 2
C Arithmetic Exception, obwohl nichts 0 ist Allgemeine Java-Themen 5
M A Java Exception has occured. Allgemeine Java-Themen 1
J Exception in thread "main" java.lang.NoClassDefFoundError Allgemeine Java-Themen 4
M Exception in thread "AWT-EventQueue-0" Allgemeine Java-Themen 6
P Input/Output java.util.Scanner in einer Schleife und Exception-Behandlung: Einlesen einer Zahl Allgemeine Java-Themen 4
E A Java Exception Has Occured Allgemeine Java-Themen 4
T Exception handling Allgemeine Java-Themen 7
P lazy loading exception Allgemeine Java-Themen 0
A Interpreter-Fehler OutOfMemory Exception mit Base64 decode Allgemeine Java-Themen 3
S Java Applet Crash - Keine Exception Allgemeine Java-Themen 8
S Best Practice verschiedene Exceptions fangen und neue Exception erzeugen Allgemeine Java-Themen 11
K Exception in thread "AWT-EventQueue-1" Allgemeine Java-Themen 2
K Gepacktes Jar-File gibt beim Doppelklick eine Exception aus Allgemeine Java-Themen 4
P Eigene Exception Klasse Allgemeine Java-Themen 7
N Java Interne Exception Allgemeine Java-Themen 4
B JUnit4 Exception-Test Allgemeine Java-Themen 4
127.0.0.1 SQL Exception, kein Driver Allgemeine Java-Themen 9
S Erste Schritte Exception beendet Schleife nicht - Methode macht trotz throw weiter? Allgemeine Java-Themen 9
R ZIP FileSystem unter Windows wirft exception Allgemeine Java-Themen 7
H java.util.Timer und Funktion mit SQL Exception Allgemeine Java-Themen 5
Ollek Barcode mit Barcode4J erzeugen - Exception Allgemeine Java-Themen 4
Z Concurrent Modification Exception - HashMap (kein remove) Allgemeine Java-Themen 4
E Eigene Exception Klasse erstellen Allgemeine Java-Themen 3
L Variablen IO Exception weil File angeblich nicht exisitert Allgemeine Java-Themen 10
T Exception versus Rückgabeparamter Allgemeine Java-Themen 26
S Exception enableDepthTest Allgemeine Java-Themen 7
M JAXB Reimport zu Hibernate DB -> Exception Allgemeine Java-Themen 3
W Kleine Frage zu Null-Pinter-Exception Allgemeine Java-Themen 21
aze JUnit: Testen ob bestimmte Exception nicht auftritt Allgemeine Java-Themen 18
S Null Pointer Exception bei BufferedReader Allgemeine Java-Themen 4
N Runtime.exec() Exception Problem Allgemeine Java-Themen 3
P Default constructor cannot handle exception type Allgemeine Java-Themen 6
M Objekt prüfen auf null ->Invocation Target Exception??? Allgemeine Java-Themen 2
S Bildaufbau durch Servlet -> Exception Allgemeine Java-Themen 11
E Queue: Wie kann hier ein null-Pointer Exception auftreten?! Allgemeine Java-Themen 11
S Exception beim Schreiben des Dataset in XML Datei Allgemeine Java-Themen 8
M Webstart Exception trotz signierten JARs Allgemeine Java-Themen 3
E Interpreter-Fehler unbekannte Exception Allgemeine Java-Themen 12
B Komische Exception Allgemeine Java-Themen 4
U SwingWorker und Exception Allgemeine Java-Themen 3
B Nullpointer Exception in Array Allgemeine Java-Themen 15
G WebService Exception Allgemeine Java-Themen 3
M Best Practices Exception Handling für eigene library Allgemeine Java-Themen 8
G PermSpace Exception Allgemeine Java-Themen 2
S Invalid Chunk Exception Allgemeine Java-Themen 3
N URLClassLoader Exception Allgemeine Java-Themen 5
Apo Java Sound Mark/Reset Exception Allgemeine Java-Themen 14
M Exception ganz sehen Allgemeine Java-Themen 2
D Problem mit EasyMock und Exception Allgemeine Java-Themen 6
B Exception wird geworfen, ich darf sie aber nicht abfangen. Allgemeine Java-Themen 10
7 Exception wird nicht aufgefangen Allgemeine Java-Themen 8
C Desktop.mail Problem. IO Exception: Failed to open. Allgemeine Java-Themen 3
L [Exception] RSA Verschlüsselung. Allgemeine Java-Themen 16
Final_Striker Exception bei neuem Look und Feel Allgemeine Java-Themen 2
N Exception beim auslesen einer JTable Allgemeine Java-Themen 5
nrg Stilistisch korrektes Exception Handling Allgemeine Java-Themen 4
F Geworfene Exception kommt nicht an Allgemeine Java-Themen 6
E Exception thrown Allgemeine Java-Themen 4
L null pointer exception Allgemeine Java-Themen 10
Developer_X Array Index Out of Bounds Exception Allgemeine Java-Themen 1
H exception Allgemeine Java-Themen 2
lumo Applet exception Allgemeine Java-Themen 6
F Weiß nicht warum Exception kommt Allgemeine Java-Themen 15
T Class Not Found Exception beim import von Paket Allgemeine Java-Themen 2
B Exception bei leerem JTable verhindern Allgemeine Java-Themen 10

Ähnliche Java Themen

Anzeige

Neue Themen


Oben