stack ươm xảy ra trong cả hai trường hợp, nó chỉ là dưới bình thường thực hiện ngăn xếp là unwound chỉ đến bối cảnh của phương thức gọi (hoặc khối) khi phương thức thực hiện trả về (hoặc khối được thoát). Các biến cục bộ được cấp phát trên ngăn xếp, do đó chúng được làm sạch theo thứ tự phân bổ ngược lại, và đó là quá trình này được gọi là thư giãn. Nó không khác với việc xử lý bất kỳ loại dữ liệu nào khác mà bạn muốn lưu trữ trong cấu trúc LIFO - ví dụ: hoàn tác, làm lại.
Khi ngoại lệ được ném, trình xử lý sẽ giải phóng ngăn xếp thông qua không hoặc nhiều phương thức cho đến khi tìm thấy một phương thức có thể bắt ngoại lệ hoặc cho đến khi nó đạt đến đỉnh của ngăn xếp, lúc đó trình xử lý ngoại lệ không được xử lý sẽ là gọi là.
Dường như là quy ước chỉ sử dụng thuật ngữ ngăn xếp thư giãn trong trường hợp xử lý ngoại lệ, nhưng nó cũng là quá trình tương tự xảy ra trong mỗi trường hợp này. Trường hợp cụ thể mà ngăn xếp thư giãn do một phương thức thoát được gọi là trả về, dường như không có bất kỳ quy ước nào để đặt tên cho những gì xảy ra khi một khối mã bị cắt bỏ.
Nguồn
2010-04-09 06:37:02
Nó thực sự không được gọi là bất cứ điều gì. Ở mọi nơi trong tiêu chuẩn, nó nói những thứ như "... biến tự động bị phá hủy ở cuối khối". Nó không bao giờ mang lại cho một quá trình đó một cái tên. – GManNickG
@GMan - Lưu kỳ lân: Tôi đoán bạn có thể thêm câu trả lời này làm câu trả lời. Đề cập đến những gì The Standard nói là một lập luận mạnh mẽ. – sharptooth