Wie wird (throw Exception
) und (return value
) in einer Sprache wie Java oder C# implementiert? Ich möchte den Mechanismus wissen, wie seine Unterstützung in einer Sprache enthalten ist und nicht nur die Verwendung von try { .... } catch (Exception) {}
.Ausnahme, Rückgabe, Serialisierbar,
Wir wissen, wenn wir eine Funktion aufrufen heißt
public void doSomething() {
....
....
return;
}
dann auf den Anruf auf den Stapel gelegt wird, und wenn das Verfahren den Aufruf von doSomething
auf Stapel kehrt herausspringt.
Was in einem Fall passiert, wo die return-Anweisung kehrt mit einem Wert, sagen return 4;
, der Anruf an doSomething()
auf dem Stapel herausspringt, und die nächste Anweisung auf Prog Zähler bekam verarbeitet? Was ist mit dem zurückgegebenen Wert passiert? Wo wurde es gespeichert und wie wird es genutzt?
Ähnlich im Fall einer Ausnahme werfen, die throw ex;
Anweisung findet auf dem Stapel die entsprechende catch
Anweisung, und bis er es findet, hält es die Dinge aus dem Stapel knallen ... Wie funktioniert dieser Mechanismus Arbeit ?
Es ist wahrscheinlich nützlich, wenn Sie dies zu 2 verschiedenen Fragen bearbeiten –
Sie nur Ihre Frage bearbeiten, jetzt ist es ganz anders. –
Sorry, aber ich dachte, dass es mehr Ausarbeitung braucht. –