Ich bin ziemlich neu in Java und nicht in der Lage, den Kontrollfluss in try-catch-finally-Blöcken zu verstehen. Immer wenn eine Ausnahme in einem catch-Block abgefangen wird, wird auch der Code nach dem catch-Block ausgeführt, unabhängig davon, ob ich ihn in einen finally-Block platziere oder nicht. Was nützt dann der Block?Flusskontrolle in der Ausnahmebehandlung
class Excp
{
public static void main(String args[])
{
int a,b,c;
try
{
a=0;
b=10;
c=b/a;
System.out.println("This line will not be executed");
}
catch(ArithmeticException e)
{
System.out.println("Divided by zero");
}
System.out.println("After exception is handled");
}
}
Es gibt keinen Unterschied, wenn ich die letzte Druckanweisung innerhalb des finally-Blocks platziere.
Werfen Sie eine 'neue RuntimeException()' innerhalb des 'try' und Sie werden feststellen, dass der Code nach dem catch-Block nicht ausgeführt wird. Dann füge einen finally-Block hinzu. – Kayaman
Sie verwenden den 'finally'-Block, um Ihr Programm auf einen Status zu setzen, mit dem es arbeiten kann, nachdem eine Ausnahme eingetreten ist. – Blobonat
Der Code innerhalb des finally-Blocks ** wird immer ausgeführt **, auch wenn im "try" oder "catch" eine "return" oder eine unbehandelte Ausnahme ist. Dies wird [hier] (https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html) erklärt, was mit einer wirklich einfachen Google-Suche gefunden wurde. ** Bitte verwenden Sie Google. ** –