mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-04 16:50:57 +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;
|
||
|
}
|
||
|
}
|