java-topology/test/langtools/tools/javac/DefiniteAssignment/DefAssignAfterTry3.java
russell@unturf.com 0a580b313d undefect. CWE-407 — 63 sites patched across 27 ecosystems
Authors: russell@unturf.com · brackishbert@gmail.com · foxhop.net · TimeHexOn.com

Patches, unit tests, benchmarks, whitepaper, and outreach briefs.
Public domain — no copyright claimed. Use freely.
2026-03-26 17:11:57 -04:00

35 lines
896 B
Java

/*
* @test /nodynamiccopyright/
* @bug 4240487
* @summary Verify that we keep track of init/uninits in Try statement
* without finalizer.
*
* @compile/fail/ref=DefAssignAfterTry3.out -XDrawDiagnostics DefAssignAfterTry3.java
*/
class E1 extends Exception {}
class E2 extends Exception {}
public class DefAssignAfterTry3 {
public static void meth() {
boolean t = true;
E1 se1 = new E1();
E2 se2 = new E2();
int i;
try {
i = 0;
if (t)
throw se1;
else
throw se2;
} catch (E1 e) {
} catch (E2 e) {
i = 0;
}
// the following line should result in a compile-time error
// variable i may not have been initialized
System.out.println(i);
System.out.println("Error : there should be compile-time errors");
}
}