Frage von Alinchen24, 42

Hey Leute, kann mir jemand diese Begriffe erklären?

Was bedeutet exceptions und was bedeutet thread und welches Prinzip steckt dahinter? Also wissen tu ich das exceptions aus try catch und Finally existiert. Hätte aber gerne auch ein Bsp dazu. Danke Alina:))

Antwort
von SirNik, 12

Hallo :D

Eine Exception ist eine Ausnahme, also im Prinzip ein Programmfehler.
Es gibt RuntimeExceptions, die erst während der Laufzeit auftreten können und du um die man sich am besten kümmert, aber nicht zwingend muss. Und es gibt Exceptions, die müssen im vorneherein behandelt werden, treten aber auch während der Laufzeit auf. (Es gibt auch noch Errors, die werden aber nicht vom programmierer behandelt)

Bsp:

public void methode()
{
   Scanner s = new Scanner(System.in);
   
   int z = s.nextInt();
}

obiges Beispiel liest eine Zahl ein und speichert sie im ganzzahlspeicherplatz z ab. Was ist aber, wenn der Benutzer ein Buchstabe, statt einer Zahl eingibt? Dann gibt es eine InputMissmatchException. und hier kann man try/catch zum abfangen benutzen:

public void methode()
{
   Scanner s = new Scanner(System.in);
   int z;

   // Versuche folgendes
   try
   {
      z = s.nextInt();
   }
   catch (InputMissmatchException e)
   {
       // Statt das Programm zu beenden bzw crashen,
       // soll etwas anderes geschehen
       // bsp: System.out.println("Eine Zahl, kein Buchstabe");
   }
   // Bei Bedarf finally { ... }
}

Das obere Beispiel würde das ganze Programm crashen lassen, während das zweite Beispiel die Exception (den Fehler) auffängt und das programm also noch am laufen ist. (1. bsp: Stein haut Scheibe kaputt, 2. bsp: Jemand fängt den Stein, bevor dieser die scheibe kaputt machen kann)

Das sind Exceptions. Wie gesagt manchen muss man bearbeiten, manche nicht. das obige muss man nicht. Aber wenn jemand möchte, dass man diese Exception abfängt, dann wird der Methodenkopf verändert zu 

public void methode() throws InputMissmatchException
{
   // ...
}

durch throws weißt du jemanden drauf hin, dass er diese Ausnahmen unbedingt (mit try/catch [oder auch einfach ein weiteres throws :D]) behandeln muss, ansonsten wird es nicht kompiliert.

Ein Thread ist ein Programmstrang. bspw. bildest du mit der main-methode einen eigenen Thread. Das heißt, zu diesem Thread gehören Methoden und befehle, die eben in deiner reihenfolge abgearbeitet werden sollen.

Es gibt allerdings auch die möglichkeit, weitere Threads zu machen, die laufen dann parallel zu deinem main-thread.

bspw möchtest du einen timer haben, der neben deinem eigentlichen programm abläuft. dein main-thread läuft seine sachen durch, während PARALELLEL der andere Thread seine aufgaben erfüllt
=> Multitasking :D

Ich hoffe, ich konnte dir einigermaßen helfen :D und du hast es verstanden

Antwort
von Stunter, 15

Exceptions:

Wenn du in deinem Programm eine Unterfunktion aufrufst und diese Funktion auf alle Fälle richtig ausgeführt werden muss, kannst du Exceptions verwenden.

Folgender Pseudocode soll als Beispiel dienen:

funktion f() {
/* Tu etwas */
wenn(nichtRichtigAusgeführt) {
wirfException("Fehler");
}
}

funktion main() {
try {
f();
} catch(Exception e) {
ausgabe(e.fehlerText()); //Die Funktion kann variieren
} finally {
/* Tu etwas */
}
}

Das bewirkt folgendes:

Als erstes wird im try-catch-Zweig der main()-Funktion die Funktion f() aufgerufen. Wird die Funktion richtig ausgeführt wird gleich zum finally-Teil gesprungen (Dazu kommen wir gleich).

Sollte in der Funktion f() etwas falsch laufen und die Funktion wirfException("Fehler") aufgerufen wird, bricht die Funktion f() ab.

Wenn das passiert, wird der catch-Teil ausgeführt. In diesem Fall wird der Fehlertext der Exception ausgegeben. Die Ausgabe lautet daher "Fehler".

Nachdem der try- und gegebenfalls der catch-Teil abgeschlossen sind, wird der finally-Teil ausgeführt. Also wird dieser Teil garantiert immer ausgeführt.

Das obere Beispiel ist Pseudocode und sollte in den meisten Programmiersprachen ähnlich funktionieren.

Threads

Ein Thread ist eine Art "Unterprogramm" in einem größeren Prozess. Threads werden verwendet, wenn man mehrere Funktionen annähernd gleichzeitig ausführen will.

Man verwendet sie für kleinere Aufgaben und sie sind vorallem praktisch, da sie einen sogenannten "Shared-Memory" besitzen. Das heißt, dass alle Threads eines Prozesses auf den gleichen Speicher und somit auf die gleichen Variablen und Objekte zugreifen können.

Threads werden mittlerweile in den meisten Programmiersprachen unterstützt und viele Sprachen haben schon vorprogrammierte Bibliotheken dafür.

Ich hoffe, ich konnte deine Fragen beantworten! :)

 ~ Stunter

Antwort
von emy299, 19

exception(s) - Ausnahmen, Besonderheit bsp. without exception - ausnahmslos

(to) thread - etw. einfädeln, aufziehen, verketten

(Substantiv) thread - Faden, Thema (bei waffen: Gewinde)

Bei sowas kannst du immer auf dict.cc gehen. die zeigen da beispiele usw. :D

Ich weiß nicht was du mit Prinzip meinst...da müsste ich wissen in welchem  zusammenhang du die wörter gebrauchst

Kommentar von SirNik ,

Hier ging es um die Programmierung :D aber die übersetzungen sind vielleicht hilfreich um besser zu verstehen ;)

Keine passende Antwort gefunden?

Fragen Sie die Community