Forum / Grundlagen des Programmierens / 3. Hausübung

Christoph ±0

Try-Catch-Finally wurde hier zur Steuerung des Programmflusses und nicht zur Fehlerbehandlung und nicht zur Definition von Aktionen, die immer ausgeführt werden müssen, verwendet. Ich würde dieses Beispiel nicht kopieren, obwohl es wahrscheinlich die Angabe (fast) erfüllt.

KK

don ±0

Hier mal meine Lösung für Bsp2!

Martin ±0

Hier mal meine Lösung für Bsp2! Vielen Dank erst mal für die Datei! Eine Frage hätt ich jedoch... Warum wird die folgende Zeile ~~~\ncatch (InputMismatchException ex) { \n~~~ bzw. die InputMismatchException vom Server benötigt?

don ±0

Vielen Dank erst mal für die Datei! Eine Frage hätt ich jedoch... Warum wird die folgende Zeile ~~~\ncatch (InputMismatchException ex) { \n~~~ bzw. die InputMismatchException vom Server benötigt?

ui ok danke, da ist ein fehler im code.. habs jetzt so:

~~~\ncatch (Exception ex) { //wenn Verbindungsfehler zum Server System.err.println("Verbindung zum Server konnte nicht hergestellt werden"); }\n~~~

wenn du das programm jetzt ohne server startest gibt er diese fehlermeldung aus.

Martin ±0

So.. hier mal meine 3 Files... hoffe es kann wer was anfangen.. ;) Kritik ist erwünscht aber bitte konstruktiv ;)

Wolfgang ±0
3Bsp
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Bsp3;

import java.io.*;
import java.util.StringTokenizer;

/**
 *
 * @author Wolfgang @date 23.05.2012
 */
public class Bsp3_0928804_3 {

    public static void main(String[] args) throws IOException {

        String Durchbiegung = "";
        Balken Balken = new Balken();

        FileReader fileReader = null;
        BufferedReader inBufferedReader = null;

        FileWriter fileWriter = null;
        BufferedWriter outBufferedWriter = null;

        String Text;

        try {
            fileReader = new FileReader("C:\\Users\\Wolfgang\\Documents\\TUWien\\4. Semester\\Grundlagen des Programmierens für MB, WIMB und VT - VU\\TUWEL-Kurs\\Hausübungen\\Hausübung 3\\BalkenInput.txt");
        } catch (FileNotFoundException error) {
            System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
        }

        try {
            inBufferedReader = new BufferedReader(fileReader); //soll verwendet werden weil effizienter, Speicher
        } catch (IllegalArgumentException error) {
            System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
        }

        try {
            fileWriter = new FileWriter("C:\\Users\\Wolfgang\\Documents\\TUWien\\4. Semester\\Grundlagen des Programmierens für MB, WIMB und VT - VU\\TUWEL-Kurs\\Hausübungen\\Hausübung 3\\BalkenOutput.txt", false);
        } catch (IOException error) {
            System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
        }

        int zaehler1 = 0;

        while ((Text = inBufferedReader.readLine()) != null) {

            int zaehler = 0;

            try {
                StringTokenizer stringTokenizer = new StringTokenizer(Text, " ");

                while (stringTokenizer.hasMoreTokens()) {

                    String Parameter = stringTokenizer.nextToken();

                    if (zaehler == 0) {
                        if ("A".equals(Parameter)) {
                            Balken.setBalkenart(1);
                        } else if ("K".equals(Parameter)) {
                            Balken.setBalkenart(2);
                        }
                    } else if (zaehler == 1) {
                        try {
                            Balken.setLength(Double.parseDouble(Parameter));
                        } catch (java.lang.NumberFormatException error) {
                            System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
                        }
                    } else if (zaehler == 2) {
                        try {
                            Balken.setDiameter(Double.parseDouble(Parameter));
                        } catch (java.lang.NumberFormatException error) {
                            System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
                        }
                    } else if (zaehler == 3) {
                        try {
                            Balken.setForce(Double.parseDouble(Parameter));
                        } catch (java.lang.NumberFormatException error) {
                            System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
                        }
                    } else if (zaehler == 4) {
                        if ("1".equals(Parameter)) {
                            Balken.setType('Q');
                        }
                        if ("2".equals(Parameter)) {
                            Balken.setType('K');
                        }
                        if ("3".equals(Parameter)) {
                            Balken.setType('I');
                        }
                    }
                    zaehler++;
                }
                zaehler1++;

            } catch (NullPointerException error) {
                System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
            }

            switch (Balken.getBalkenart()) {
                case 1:
                    try {
                        Auflagerbalken Auflagerbalken = new Auflagerbalken(Balken.getLength(), Balken.getDiameter(), Balken.getForce(), Balken.getType());
                        Durchbiegung = String.valueOf(Auflagerbalken.getDurchbiegung());
                        break;
                    } catch (java.lang.ArithmeticException error) {
                        System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
                    } catch (java.lang.NumberFormatException error) {
                        System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
                    }
                case 2:
                    try {
                        Kragtraeger Kragtraeger = new Kragtraeger(Balken.getLength(), Balken.getDiameter(), Balken.getForce(), Balken.getType());
                        Durchbiegung = String.valueOf(Kragtraeger.getDurchbiegung());
                        break;
                    } catch (java.lang.ArithmeticException error) {
                        System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
                    } catch (java.lang.NumberFormatException error) {
                        System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
                    }
            }
            outBufferedWriter = new BufferedWriter(fileWriter);
            System.out.println("Balken " + zaehler1 + ": " + Text + " " + Durchbiegung);
            try {
                outBufferedWriter.write("Balken " + zaehler1 + ": " + Text + " " + Durchbiegung);
            } catch (IOException error) {
                System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
            }

            try {
                outBufferedWriter.newLine();
            } catch (IOException error) {
                System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
            }

            try {
                outBufferedWriter.flush();
            } catch (IOException error) {
                System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
            }
        }

        try {
            outBufferedWriter.close();
            inBufferedReader.close();
            fileReader.close();
            fileWriter.close();
        } catch (IOException error) {
            System.out.print(error.getClass().getSimpleName() + "\n" + error.getMessage());
        }
    }
}

\n~~~

Frage zu exception: muss man vor jeder methode, die von java bereits vordefiniert ist und ich diese verwende, eine try catch abfrage machen, damit ich genau weiß wo der fehler aufgetreten ist???
Martin ±0

Frage zu exception: muss man vor jeder methode, die von java bereits vordefiniert ist und ich diese verwende, eine try catch abfrage machen, damit ich genau weiß wo der fehler aufgetreten ist???

Eig. würde es schon sinn machen jede einzeln zu fangen.... aber laut tutor im tuwel forum:

"Exceptions:

"Ausreichend und angepasst" heißt, dass alle Exceptions, die geworfen werden können auch behandelt werden. Ob Sie jede Fehlerquelle mit einem eigenen Try/Catch-Block umgeben oder einen großen machen und dann alle Exceptions abfangen bleibt Ihnen überlassen. "

d.h. es müssen eig. nur alle gefangen werden wie, wo, wann is egal

Alexander ±0

Hey! Hat bei euch das GivenTextFile auch 255 Zeichen und nicht 237 wie drinnen steht?

David ±0

@ Alexander: Laut TUWEL-Forum sollen wir die komische Zeichenfolge am Anfang und Ende der Textdatei einfach herauslöschen, dann sinds 237 Zeichen... Hat irgendetwas mit einem Fehler von TUWEL zu tun.

Alexander ±0

ah ok..hab ich irgendwo überlesen. Danke

Öznur ±0

Leute i hab ne Frage. Sollen wir beim Beispiel 2 Server Klassen auch im .jar haben?

Daniel ±0

Hier mal mein erstes Bsp:

Ich fürchte aber, dass das nicht als passendes Exceptionhandling reichen wird oder?

Gottlieb ±0

Servus,

Frage zum 3. BSP: Was kommt bei Euch als Ergebnis raus? In der Angabe ist die Biegung des 1. Trägers, diese stimmt jedoch nicht mit dem überein, was mein Programm ausspuckt. Hier meine Ergebnisse: Balken 1: K 120 80 30 2 7.296135309661851E15 Balken 2: A 40 80 10 1 9.557333333333334E12 Balken 3: A 200 10 15 3 3.645833333333333E11 Balken 4: K 2300 120 100 1 1.47172032E21 Balken 5: K 123 87 267 3 1.38369112084117296E17 Balken 6: A 603 41 32 2 4.257800392686837E15

Habt ihr das auch so? Danke, LG OStDTaft

Stefan ±0
Frage zum Zusatz "throws" bei main-Methode
Wofür genau braucht man dieses "throws IOException" eigentlich bzw. ist das laut Angabe gefordert?
Weil, wenn ich einfach überall, wo ich einen
~~~\ntry{
}
catch{
}\n~~~
Block will, diesen hinschreib, tritt ja trotzdem der Effekt auf, den wir wünschen. Das Programm beendet ohne Absturz und zeigt die Fehlermeldung an. Im Rep. stehts glaub ich auch nicht...
Danke im voraus für eure Antwort :)
Umpa ±0

Hallo ich hab ein ziemlich nerviges Problem bei Bsp2! Hat da vielleicht jemand eine Idee.

        Socket clientsocket = null;
        BufferedReader buffti;
        try {
            clientsocket = new Socket("127.0.0.1", 4667);
        } catch (IOException ex) {
            System.out.println("Error " + ex.getMessage());
        }

        try {
            buffti = new BufferedReader(new InputStreamReader(clientsocket.getInputStream()));
        } catch (IOException ex) {
            System.out.println("Error " + ex.getMessage());
        }
    }\n~~~
ich hab das mal so geschrieben den Code um zu checken ob eine Verbindung mit dem Server entsteht. ABER: Ich krieg jedes mal die Fehlermeldung:

Error Connection refused: connect
Exception in thread "main" java.lang.NullPointerException!!!!!!!!!!!

Ich habauch schon die Firewall ausgeschaltet, den Port geändert und versucht nicht über "localhost" sondern über die IP_Adresse aufzurufen. Nix klappt. Hat das Problem vielleicht auch wer? Vielleicht auch einfach iwo ein Buchstabe oder so aber ich denke nicht.
Sorry, die Kommentarfunktion ist geschlossen.