Hallo,
ich bräuchte mal Hilfe bei einer sehr speziellen Frage, auf die ich bisher keinerlei Antwort finden konnte.
Mein Code sieht folgendermaßen aus:
Jetzt kommt es manchmal dazu, dass eine ArithmeticException geworfen wird:
. Soweit ja noch alles klar, dachte ich mir, ist "scale" halt eben komischerweise 0. Deshalb hab ich die debug-Nachricht davor eingebaut. Ergebnis: "scale" ist in allen Fällen 2! Und ab der Stelle hab ich keine Ahnung mehr :noe:
Meine beste Idee dazu wäre noch, dass Java - warum auch immer - in speziellen Fällen Variablen auf einen Standardwert (in diesem Fall wahrscheinlich 0) setzt, aber zu so etwas konnte ich nichts im Internet finden.
Ich weiß nicht, ob ihr den Fehler schonmal hattet, aber falls ja oder ihr auch sonst eine Idee habt, woran das liegen könnte, wäre ich sehr dankbar über eure Mithilfe Vielen Dank im Voraus für alle hilfreichen Antworten!
Viele Grüße
corvus
ich bräuchte mal Hilfe bei einer sehr speziellen Frage, auf die ich bisher keinerlei Antwort finden konnte.
Mein Code sieht folgendermaßen aus:
Java:
int requiredWidth = 320;
int scale_start=2;
if (Runtime.getRuntime().maxMemory() > 64*1024*1024)
scale_start=1;
int scale = requiredWidth <= 480 ? 2 : scale_start;
debug("scale: " + scale);
try{
while(o.outWidth / scale / 2 >= requiredWidth)
scale *= 2;
}catch(ArithmeticException e){
warn("Cannot calculate scale. Setting it to 2...", e);
scale = 2;
}
Code:
java.lang.ArithmeticException: divide by zero
Meine beste Idee dazu wäre noch, dass Java - warum auch immer - in speziellen Fällen Variablen auf einen Standardwert (in diesem Fall wahrscheinlich 0) setzt, aber zu so etwas konnte ich nichts im Internet finden.
Ich weiß nicht, ob ihr den Fehler schonmal hattet, aber falls ja oder ihr auch sonst eine Idee habt, woran das liegen könnte, wäre ich sehr dankbar über eure Mithilfe Vielen Dank im Voraus für alle hilfreichen Antworten!
Viele Grüße
corvus