Switch-expression with nested try (original) (raw)
Jan Lahoda jan.lahoda at oracle.com
Tue Nov 20 12:13:40 UTC 2018
- Previous message: Switch-expression with nested try
- Next message: JDK-8212982: Rule cases in switch expression accepted even if complete normally
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Tagir,
Thanks for the report, I've filled it here: https://bugs.openjdk.java.net/browse/JDK-8214114
Jan
On 20.11.2018 10:49, Tagir Valeev wrote:
Hello!
Switch expression with nested try is a weird beast. I was wondering how you managed to compile it. Seems it's still problematic. Code: public class Java12Test { public static void main(String[] args) { System.out.println(switch(0) { default -> { try { throw new Exception(); } catch(Exception ex) { break 1; } } }); } }
"C:\Program Files\Java\jdk-12\bin\java.exe" -version openjdk version "12-ea" 2019-03-19 OpenJDK Runtime Environment (build 12-ea+20) OpenJDK 64-Bit Server VM (build 12-ea+20, mixed mode, sharing) "C:\Program Files\Java\jdk-12\bin\javac.exe" --enable-preview --release=12 Java12Test.java Note: Java12Test.java uses preview language features. Note: Recompile with -Xlint:preview for details. "C:\Program Files\Java\jdk-12\bin\java.exe" --enable-preview Java12Test Error: Unable to initialize main class Java12Test Caused by: java.lang.VerifyError: Stack map does not match the one at exception handler 24 Exception Details: Location: Java12Test.main([Ljava/lang/String;)V @16: new Reason: Current frame's stack size doesn't match stackmap. Current Frame: bci: @16 flags: { } locals: { '[Ljava/lang/String;' } stack: { 'java/lang/Exception' } Stackmap Frame: bci: @24 flags: { } locals: { '[Ljava/lang/String;' } stack: { 'java/io/PrintStream', 'java/lang/Exception' } Bytecode: 0000000: b200 0203 ab00 0000 0000 000c 0000 0000 0000010: bb00 0359 b700 04bf 4d04 3ca7 0003 1bb6 0000020: 0005 b1 Exception Handler Table: bci [16, 24] => handler: 24 Stackmap Table: samelocals1stackitemframe(@16,Object[#15]) fullframe(@24,{Object[#16]},{Object[#15],Object[#3]}) fullframe(@30,{Object[#16],Integer},{Object[#15]}) With best regards, Tagir Valeev
- Previous message: Switch-expression with nested try
- Next message: JDK-8212982: Rule cases in switch expression accepted even if complete normally
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]