import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class STB_Sample {
    public void testSTB(File f1, File f2) throws STBException {
        try {
            InputStream is = new FileInputStream(f1);
        } catch (IOException ioe) {
            throw new STBException();
        }

        try {
            InputStream is = new FileInputStream(f2);
        } catch (IOException ioe) {
            throw new STBException();
        }
    }

    public void testSTB2(File f1, File f2) throws STBException {
        try {
            InputStream is = new FileInputStream(f1);
        } catch (IOException ioe) {
            throw new STBException("It's broken");
        }

        try {
            InputStream is = new FileInputStream(f2);
        } catch (IOException ioe) {
            throw new STBException("It's broken");
        }
    }

    public void testSTB3(File f1, File f2) throws STBException {
        try {
            InputStream is = new FileInputStream(f1);
        } catch (IOException ioe) {
            STBException se = new STBException("It's broken");
            se.initCause(ioe);
            throw se;
        }

        try {
            InputStream is = new FileInputStream(f2);
        } catch (IOException ioe) {
            STBException se = new STBException("It's broken");
            se.initCause(ioe);
            throw se;
        }
    }

    public void fpTestMethodDeclaresThrownType(File f1, File f2) throws STBException, IOException {
        try {
            InputStream is = new FileInputStream(f1);
        } catch (IOException ioe) {
            throw new STBException();
        }

        try {
            InputStream is = new FileInputStream(f2);
        } catch (IOException ioe) {
            throw new STBException();
        }
    }

    public void fpTestDiffMessages(File f1, File f2) throws STBException {
        try {
            InputStream is = new FileInputStream(f1);
        } catch (IOException ioe) {
            throw new STBException("Couldn't open file 1");
        }

        try {
            InputStream is = new FileInputStream(f2);
        } catch (IOException ioe) {
            throw new STBException("Couldn't open file 2");
        }
    }

    public void fpTestDiffMessagesByAppending(File f1, File f2) throws STBException {
        try {
            InputStream is = new FileInputStream(f1);
        } catch (IOException ioe) {
            throw new STBException("Couldn't open file: " + f1);
        }

        try {
            InputStream is = new FileInputStream(f2);
        } catch (IOException ioe) {
            throw new STBException("Couldn't open file: " + f2);
        }
    }

    static class STBException extends Exception {

        public STBException() {
        }

        public STBException(String message) {
            super(message);
        }
    }
}

@@ -2732,24 +2732,646 @@
    %7D%0A    %7D%0A%0A
+    public int fpStackedAcrossCases(String val) throws STBException %7B%0A%0A        switch (val) %7B%0A            case %22A%22:%0A                try %7B%0A                    return Integer.parseInt(val + %220%22);%0A                %7D catch (NumberFormatException e) %7B%0A                    throw new STBException(%22The lotto machine is broken%22);%0A                %7D%0A%0A            case %22B%22:%0A                try %7B%0A                    return Integer.parseInt(val + %2200%22);%0A                %7D catch (NumberFormatException e) %7B%0A                    throw new STBException(%22The lotto machine is broken%22);%0A                %7D%0A        %7D%0A%0A        return 0;%0A    %7D%0A%0A
     static c

add stb over case statements