Exception



  • Hallo!

    Ich weiss nicht wie ich es sagen soll, aber irgendwie springt bei meinem Programm die Execption ein, wenn ich Zahlen mit zu vielen Stellen eingebe. Woran könnte das liegen? Liegt das am Wertebereich von INTEGER??

    Wäre nett, wenn ihr mir dabei helfen könntet.

    Danke
    Java-Anfänger

    import java.io.*;
    
    public class maxmin {
    
    	public static void main(String[] args) throws IOException {
    		int zahl1 = 0, zahl2 = 0;
    
    		System.out.println("\nMaximum zweier Zahlen");
        	InputStreamReader datenstrom = new InputStreamReader(System.in);
        	BufferedReader dateneingabe = new BufferedReader(datenstrom);
        	try {  	System.out.print("\nBitte 1. Zahl eingeben: "); 
        			zahl1 = Integer.parseInt(dateneingabe.readLine());
        			System.out.print("Bitte 2. Zahl eingeben: ");
        			zahl2 = Integer.parseInt(dateneingabe.readLine()); 
        		}
        	catch ( NumberFormatException e) 
        		{	System.err.println("Fehler"); System.exit (0);	}
    
            System.out.println ("\nMaximum ist: " + minmax (zahl1, zahl2));
    
    	}
    
    	static int minmax (int i, int j) 
    	{	if (i > j) return i;
    		else return j;
    	}
    
    }
    


  • Wie ist der genaue Fehlertext der Exceptoin (ich vermute die NumberFormat fliegt) und bei welcher Eingabe trifft er auf?
    Wäre hilfreicher beim Lösen des Problems.



  • Was meinst du mit dem genauen Fehlertext? Ich habe hier folgende Meldung -> java.lang.NumberFormatException: For input string: "333333333333333"

    Keine Ahnung ob dir das was sagt. Mir jedenfall nicht 😞

    gruss
    J-A



  • Die Zahl ist einfach zu lang. Sie passt nicht in ein int rein.



  • BigInteger wäre eine Lösung.

    Nur mal so nebenbei 🙂



  • Ok danke. Werds mal versuchen.

    gruss
    J-A


Anmelden zum Antworten