aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/shedlang/compiler/patio/instructions/PatioThrow.java
blob: 95b9dd7cc812d1930f40eb794fe230c52f052ff7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package org.shedlang.compiler.patio.instructions;

import org.shedlang.compiler.patio.operands.PatioOperand;
import org.shedlang.compiler.sources.Source;

/// Search the stack for an exception handler with a catch clause matching the
/// thrown exception type. Unwind the stack up to and including this exception
/// handler, and run the body of the catch clause. If no such exception handler
/// is found, the process should abort.
public record PatioThrow(
    String exceptionTypeName,
    PatioOperand value,
    Source source
) implements PatioInstruction {
    @Override
    public boolean isBlockTerminator() {
        return true;
    }
}