Z mojego zrozumienia, throw
jest pierwotnym poleceniem jvm. Po wywołaniu JVM "sprawdza, czy bieżący stos wywołań może go złapać". jeśli nie, to java po prostu wyrzuca stos wywołań prawie dokładnie tak, jak gdyby został wywołany zwrot. następnie jvm "sprawdza, czy bieżący stos wywołań może go złapać" itd. w rekursywnie.W jaki sposób JVM wie, gdzie można złapać wyjątek w czasie wykonywania?
Moje pytanie: w jaki sposób algorytmicznie JVM może wiedzieć, gdzie w stosie wywołań może złapać dany wyjątek? Czy istnieją metadane zapisane w każdym odwołaniu do przypisania stosu wywołań do bloków kodu? czy istnieje statyczna struktura danych w stercie, która w jakiś sposób śledzi to? ponieważ gdzieś musi być śledzenie danych.
powiązane: http://stackoverflow.com/questions/10301244/how-is-multi-catch-implemented-in-java-7 – assylias