Files
codeql/java/ql/test/library-tests/successors/TestThrow/TestThrow.java
2018-09-23 16:24:31 -07:00

136 lines
1.6 KiB
Java

package successors;
import java.io.IOException;
import java.security.InvalidParameterException;
public class TestThrow {
private TestThrow() throws IOException
{
}
private void thrower() throws InvalidParameterException
{
}
public void f() throws Exception
{
int z = 0;
try
{
throw new RuntimeException();
} catch (RuntimeException e)
{
z = 1;
} catch (Exception e)
{
z = 2;
}
z = -1;
try
{
if (z == 1)
{
throw new RuntimeException();
} else if (z == 2)
{
throw new Exception();
} else if (z == 3)
{
new TestThrow();
} else
{
thrower();
}
} catch (RuntimeException e)
{
z = 1;
} finally
{
z = 2;
}
z = -1;
try
{
if (z == 1)
{
throw new Exception();
}
else if (z == 2)
{
new TestThrow();
} else
{
thrower();
}
} catch (RuntimeException e)
{
z = 1;
}
z = -1;
try
{
if (z == 1)
throw new Exception();
} finally
{
z = 1;
}
try
{
try
{
if (z == 1)
{
throw new Exception();
} else if (z == 2)
{
throw new RuntimeException();
} else
{
throw new IOException("Foo bar", null);
}
} catch (RuntimeException e)
{
z = 1;
}
try
{
z = -2;
} finally
{
if (z == 1)
{
throw new Exception();
} else if (z == 2)
{
throw new RuntimeException();
} else if (z == 3)
{
throw new IOException("Foo bar", null);
}
}
} catch (IOException e)
{
z = 2;
}
finally
{
z = 3;
}
if (z == 1)
{
throw new Exception();
}
z = -1;
}
}