Hossa 
Das war zwar nicht direkt eine passende Antwort auf meine Frage, aber ich habe deinen Beispiel-Code etwas modifiziert. Ich wollte ja wissen, was passiert, wenn in der JVM zwei Exceptions zum Werfen anstehen. Hier mein modifizierter Code:
import java.io.\*;
public class Main
{ public static void main(String[] args) throws Exception
{ BufferedReader stdin = null;
try
{ stdin = new BufferedReader(
new InputStreamReader(
new FileInputStream("1.txt"))); }
catch (FileNotFoundException e)
{ e.printStackTrace();
throw e; }
finally
{ try
{ stdin = new BufferedReader(
new InputStreamReader(
new FileInputStream("2.txt"))); }
catch (FileNotFoundException e)
{ e.printStackTrace();
throw e; }
finally
{ System.out.println("Ende"); } } } }
Hier gibt es zwei Exceptions, die von der Funktion „Main“ geworfen werden müssten. Als Antwort bekomme ich von der JVM:
java.io.FileNotFoundException: 1.txt
java.io.FileNotFoundException: 2.txt
Ende
Exception in thread "main" java.io.FileNotFoundException: 2.txt
Exception 1 wird gefangen und weiter geworfen.
Exception 2 wird gefangen und weiter geworfen.
Der finally-Block wird ausgeführt („Ende“)
Aber dann wird nur Exception 2 von „Main“ geworfen!
Mit anderen Worten: Wenn in einer Funktion mehrere Exceptions zum Werfen anstehen, wird immer die zuletzt aufgetretene nach oben geworfen, alle vorigen Exceptions gehen verloren!
Das wollte ich eigentlich nur wissen 
Vielen Dank für deine Hilfe und viele Grüße
Hasenfuß