JAVA Exception Handling (Try/Catch und Throw) - Gibt es davon Vor- und Nachteile?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Vorteil: Programm stürzt nicht ab.

Nachteil: Mal angenommen du stürzt von einer Klippe und ein Netz fängt dich auf? Gibts dann einen Nachteil? Du lebst noch, genau wie dein Programm.

Also Fehlerhandling ist eine ganz gute Sache und es ist einfacher mit try-catch, als wenn du alles mit Polling machen musst.

Also z.b. lässt du ne Zahl einlesen, der benutzer gibt aber ein buchstabe ein, dann würde das Programm mit einer InputMismatchException abstürzen. Mit try-catch kannst du dad einfach auffangen und weitet machen, als ob nichts gewesen ist.
Mit Polling wärst du hier schon an deinen grenzen, da ein input mismatch nicht direkt mit if's und schleifen abgefragt werden können, dazu müsste es egal sein, was er eintippt, du prüfst dann extra obs ne zahl ist, anstatt es zu einer exception kommen zu lassen

Wieso "beiden Fehlerbehandlungen"? Du brauchst alle drei Schlüsselworte.

throw/throws gibt an, dass ein Fehler geworfen wird und mit try{}catch{} fängt man ihn.

z.B.


public void wirf()throws Exception{
  if(//Fehler){
    throw new Exception();
  }
}

public void fang(){
  try{
     wirf();
  }
   catch(Exception e){
     //Tu was bei Fehler
   }
}



Danke Dir! :-) 
Nun gut, dann bezieht sich meine Frage eher auf das Try/Catch. Gibt es da Vor- und Nachteile?

0
@11thSense

Eigentlich nicht. Ist eine sehr verbreitete Lösung. Vor allem unterstützt sie das MVC-Paradigma, weshalb es so beliebt ist.

0

Wie funktionieren exceptions in java?

wenn man es mit try und catch schreibt, hab ich gelernt dass man catch(Exception e) schreibt und danach e.printStackTrace ... Aber warum schreibt man nicht Exception e = new Exception(); ??? Und was macht die Methode printStackTrace in der Klasse Exception?

...zur Frage

C# - Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird?

Hallo, ich habe ein Problem mit meiner programmierten Anwendung. Immer wenn ich auf den Erstellen-Button klicke kommt in einer textBox die Meldung:

Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.

Code:

private void buttonErstellen_Click(object sender, EventArgs e)
		{
			OpenFileDialog ofd = new OpenFileDialog();
			ofd.Filter = "XML|*.xml";
			if (ofd.ShowDialog() == DialogResult.OK)
			{
				try
				{
					textBoxPfad.Text = Path.GetDirectoryName(ofd.FileName);
					DeserializeXml(ofd.FileName);
				}
				catch (Exception exception)
				{
					textBoxStatus.Text = exception.Message;
				}
			}
		}
    public void DeserializeXml(string fileName)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(PersonenKonfiguration));
        XmlReader xmlFileReader;
        
        try
        {
            Person personen = new Person { Name = "Mustermann", Vorname = "Max", Wohnort = "Musterstadt" };
            
            xmlFileReader = XmlReader.Create(fileName);
            StreamWriter writer = new StreamWriter(fileName);
            serializer.Deserialize(xmlFileReader);
            writer.Write(personen);
            textBoxStatus.Text = "Validierung abgeschlossen.";
        }
        catch (Exception ex)
        {
            textBoxStatus.Text = ex.Message;
        }
    }

...zur Frage

In Java cmd Befehle ausgeben?

Man kann ja in Java mit den Befehlen

try
{
  Runtime rt = Runtime.getRuntime();
  rt.exec("dir");
}
catch(Exception e)
{
  System.out.println("Exception");
}

einen Befehl ausführen. Wie geht es dann, das die ausgabe (Hier die Ordnerverzeichnisse)
auch angzeigt werden kann?

...zur Frage

Was möchtest Du wissen?