mirror of
https://github.com/autc04/Retro68.git
synced 2024-09-10 03:54:48 +00:00
42 lines
900 B
Java
42 lines
900 B
Java
// Check that a NPE likely thrown from the first instruction of a
|
|
// method (foo) is properly caught.
|
|
public class Throw_3
|
|
{
|
|
public static void main(String[] args)
|
|
{
|
|
Throw_3 al = new Throw_3();
|
|
try
|
|
{
|
|
al.foo(null);
|
|
}
|
|
catch (NullPointerException npe)
|
|
{
|
|
StackTraceElement ste[] = npe.getStackTrace();
|
|
StackTraceElement top = ste[0];
|
|
if ("foo".equals(top.getMethodName()))
|
|
{
|
|
System.out.println("ok");
|
|
return;
|
|
}
|
|
}
|
|
System.out.println("bad");
|
|
}
|
|
|
|
public int bar(int[] a)
|
|
{
|
|
System.out.println("Bar");
|
|
return 5;
|
|
}
|
|
|
|
/**
|
|
* If the second parameter ('this' being the first) is passed in a
|
|
* register, then the first machine instruction in foo is likely to
|
|
* fault when null is passed.
|
|
*/
|
|
public int foo(int[] a)
|
|
{
|
|
int l = a.length;
|
|
return l + l;
|
|
}
|
|
}
|