# KOS_OP_PUSH_TRY - **Style**: LABEL. Handler targets in extent table. - **Stack**: Pushes TRY node and a KosSegment (like PUSH_LOOP). Exception dispatch clears the segment before jumping to the handler. POP_TRY promotes the protected result (exactly one value) to the revealed segment and drops the region's segment. Node unwind (e.g. BREAK through TRY) also drops the segment. - **Pushes:** KOS_DYN_TRY (static extent KOS_EXT_TRY; handler targets in extent descriptor) and KosSegment. - **Invariants**: Extent kind KOS_EXT_TRY. Handler targets (except_pc, finally_pc, exit_pc) from extent descriptor. **Example:** try/except. Extent table holds except_pc, finally_pc, exit_pc. | index | opcode | arg | arg view | comment | |------:|--------|-----|----------|---------| | 0 | PUSH_TRY | 0 | 0 | push TRY region; extent table: except_pc, etc. | | 1 | … | … | … | try body | | 2 | POP_TRY | 0 | 0 | normal exit: pop TRY | | 3 | JUMP | 5 | 5 (-> 5) | skip handler | | 4 | LABEL | -- | -- | except handler (except_pc) | | 5 | LABEL | -- | -- | exit |